首页 > 代码库 > Python 学习第三弹:异常情况如何处理?

Python 学习第三弹:异常情况如何处理?

python 的处理错误的方式:

1> 断言

    assert condition    相当于     if not condition:        crash program    断言设置的目的就是因为与其让程序晚点崩溃,不如直接设置错误情况,让它直接崩溃    >>> age = -1    >>> assert 0 < age < 100    AssertionError

 

2> 捕捉异常

    try:        x = input()        y = input()        print(x/y)    except ZeroDivisionError:        print("Division by Zero")    类似这样try/except形式就是来捕捉可能发生的异常错误,一旦出现ZeroDivisionError错误信息,则运行except ZeroDivisionError之后的代码    通过多个except来捕捉不同错误信息        def calc(expr):            try:                return eval(expr)            except ZeroDivisionError:                print("Divison by zero")            except TypeError:                print(This is not a number?)    一个块捕捉多个错误信息        def calc(expr):            try:                return eval(expr)            except (ZeroDivisionError, TypeError):                print("Input has some bugs")    打印错误信息        def calc(expr):            try:                return eval(expr)            except (ZeroDivisionError, TypeError) as error:                print(error)    对于其他错误信息处理        def calc(expr):            try:                return eval(expr)            except ZeroDivisionError:                print("Divison by zero")            except:                print(haha, something unknown happened!)    else语句用于不出现错误信息        def calc(expr):            try:                return eval(expr)            except ZeroDivisionError:                print("Divison by zero")            else:                print("Oh, it goes well!")    此外还有finally语句,无论是否错误均会执行    实际应用:(输入表达式直到可以计算)    while True:        try:            print(eval(input()))        except:            print(Please reinput until you input the correct expression!)        else:            break;        finally:            print(I love the world whatever!) #即使else中break也会执行finally

 

Python 学习第三弹:异常情况如何处理?