美文网首页
python学习(八)-错误处理

python学习(八)-错误处理

作者: 小慕先森 | 来源:发表于2018-01-24 12:46 被阅读0次

捕获错误

try:
    print('try...')
    r = 10 / 0
    print('result:', r)
except ZeroDivisionError as e:
    print('except:', e)
finally:
    print('finally...')
print('END')

但是finally如果有,则一定会被执行(可以没有finally语句)。
ython所有的错误都是从BaseException类派生的,常见的错误类型和继承关系看这里:

https://docs.python.org/3/library/exceptions.html#exception-hierarchy

抛出错误

因为错误是一个类,捕获一个错误就是捕获到该class的一个实例,python内置函数会抛出很多类型的错误,若要抛出错误,首先根据需求,定义一个错误的class,选择好继承关系,然后用raise语句抛出一个错误的实例


def foo(s):
    n = int(s)
    if n==0:
        raise ValueError('invalid value: %s' % s)
    return 10 / n

def bar():
    try:
        foo('0')
    except ValueError as e:
        print('ValueError!')
        raise

bar()

相关文章

网友评论

      本文标题:python学习(八)-错误处理

      本文链接:https://www.haomeiwen.com/subject/iaoyaxtx.html