zoukankan      html  css  js  c++  java
  • python 错误处理

    try...except...finally...的错误处理机制


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

    在计算10 / 0时会产生一个除法运算错误

    try...
    except: division by zero
    finally...
    END

    当错误发生时,后续语句print('result:', r)不会被执行,
    except由于捕获到ZeroDivisionError,因此被执行。
    最后,finally语句被执行。

    可以有多个except来捕获不同类型的错误
    try:
    print('try...')
    r = 10 / int('2')
    print('result:', r)
    except ValueError as e:
    print('ValueError:', e)
    except ZeroDivisionError as e:
    print('ZeroDivisionError:', e)
    else:
    print('no error!')
    finally:
    print('finally...')
    print('END')

    可以跨越多层调用,
    比如函数main()调用foo(),foo()调用bar(),
    结果bar()出错了,
    只要main()捕获到了,就可以处理


    抛出错误

    要抛出错误,首先根据需要,可以定义一个错误的class,选择好继承关系,然后,用raise语句抛出一个错误的实例:

    # err_raise.py
    class FooError(ValueError):
    pass

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


    在必要的时候才定义我们自己的错误类型

     

    朝闻道
  • 相关阅读:
    组合数据类型练习
    词法分析
    ORACLE聚合函数细节
    Centos7 最小系统安装Redis
    JQuery版评分控件
    Javascript & JQuery读书笔记
    HTML5&CSS3读书笔记
    Javascript版显示相应图片的详细信息
    MVC2,MVC3,MVC4和MVC5的不同
    Microsoft Office Excel cannot access the file
  • 原文地址:https://www.cnblogs.com/wander-clouds/p/8461081.html
Copyright © 2011-2022 走看看