Python异常处理

2019-06-01  本文已影响0人  Recalcitrant

Python异常处理

一、捕获异常

1.异常捕获语法

try:
    # 尝试执行的代码
    pass
except 错误类型1:
    # 针对错误类型1,对应的处理代码
    pass
except 错误类型2:
    # 针对错误类型2,对应的处理代码
    pass
............
except (错误类型m, 错误类型n,......):
    # 针对多种错误类型,对应的处理代码
    pass
............
except Exception as result:
    # 打印未知错误信息
    print("未知错误:{}".format(result))
else:
    # 没有异常才执行的代码
    pass
finally:
    # 无论是否有异常都会执行的代码
    pass

2.错误类型捕获

except:处理所有异常。
except Type:只处理指定类型的异常。
except Type as result:获取异常信息。
except (Type1, Type2, Type3, ......):同时处理多种异常。
excep Exception as result:捕获所有异常(所有的异常都继承自Exception)。

注意:except语句执行顺序为从上至下。因此书写捕捉异常语句时,要先写具体异常,再写具有普遍性的异常。

二、异常传递

异常发生后,会将异常传递给方法(函数)的调用者。
如果调用者有捕捉到该异常,则按捕捉机制处理。
如果调用者没有捕捉到该异常,则会向上层传递。
最终会传递到Python解释器。若异常仍未被处理,此处即简单终止程序。

三、抛出异常

raise 异常名

主动抛出异常。

四、自定义异常

class 自定义异常名(Exception):
    pass

自定义异常主要是自己定义的异常类,对异常进行分门别类管理,自定义异常需要继承异常父类Exception。

上一篇下一篇

猜你喜欢

热点阅读