try-except-else-finally

Posted turbolxq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了try-except-else-finally相关的知识,希望对你有一定的参考价值。

def test(a):
    try:
        print(this is try...)
        if a == 0:
            raise ZeroDivisionError(customize erro)
        # 如果try有return则不再执行else的代码
        return str(10/a)
    # 多个except之间是互斥关系
    except BaseException as e:
        print(this is except 1... + str(e))
        return except 1
    except ZeroDivisionError as e:
        print(this is except 2... + str(e))
        return except 2
    #
    else:
        print(this is else...)
        return (else)
    finally:
        # finally中的代码,无论什么情况都要执行,即使之前有return!
        print(this is finally...即使有return也要先执行finally之后再执行return!)
        # 如果finally中有return会覆盖之前的return,如果finally中没有则用之前的return
        return finally


print(the result is: +str(test(0)))

1、组合:try-except,try-finally,try-except-else,try-except-finally,try-except-else-finally

2、else的代码是执行成功没有报错的情况才执行,如果try中有return则不会执行else中的代码

3、多个except之间是互斥的关系

4、即使在finally之前有return也会执行finally的代码,finally中的return会覆盖之前的return

以上是关于try-except-else-finally的主要内容,如果未能解决你的问题,请参考以下文章

Python学习篇 Python中的常见的BUG及异常处理

Python学习篇 Python中的常见的BUG及异常处理

Java 代码块,普通代码块,构造代码块,静态代码块

在区分源代码,对象代码,汇编代码和机器代码时,我有一个困惑

Java中普通代码块,构造代码块,静态代码块区别及代码示例

Java中普通代码块,构造代码块,静态代码块区别及代码示例2 构造代码块