美文网首页
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