如果我们的代码中没有刻意捕获异常,异常会一直向上返回到顶层程序,并启用默认的异常处理器:打印标准的出错消息。
异常的四个语句处理:
try/except 捕获异常,处理异常,并从异常中恢复,继续运行以后的程序
raise 手动引发异常.如果没有捕捉异常,用户定义的异常会向上传递,知道定测默认的异常处理器,并 通过标准出错消息终止改程序
assert 也可以用来触发异常,它是一个有条件的raise,主要在开发过程中用于调试
try/finally 无论try代码块是否发生异常,一定会执行finally代码块。当try块触发异常时,异常向上传播有上一层的异常处理器捕获,程序在执行finally代码块后退出;如果try块没有触发异常,程序也会执行finally块,但程序会继续运行try块后面的语句
with/as 是一种新异常,确保对它支持的对象执行终止操作
用户定义的异常:
用户定义的异常能通过类来编写,它继承自一个内置的异常类,Exception.