捕获错误
1、普通try except finally 捕获顺序。
2、调用栈:如果错误没有被捕获,它就会一直往上抛,最后被Python解释器捕获,打印一个错误信息,然后程序退出。
3、记录错误(使用logging模块):捕获错误,就可以把错误堆栈打印出来,然后分析错误原因,同时,让程序继续执行下去。
与2不同的是 ①同样是出错,但程序打印完错误信息后会继续执行,并正常退出 。
②通过配置,logging还可以把错误记录到日志文件里,方便事后排查。
抛出错误
1、使用raise+自己编写的函数抛出错误:
使用raise捕获错误:捕获一个错误就是捕获到该class的一个实例。因此,错误并不是凭空产生的,而是有意创建并抛出的。Python的内置函数会抛出很多类型的错误,我们自己编写的函数也可以抛出错误。
步骤:
①如果要抛出错误,首先根据需要,可以定义一个错误的class,选择好继承关系,然后,用raise语句抛出一个错误的实例
②执行,可以最后跟踪到我们自己定义的错误
使用建议:
尽量使用Python内置的错误类型
2、单纯用raise(+内置Error)抛出错误
raise语句如果不带参数,就会把当前错误原样抛出。此外,在except中raise一个Error,还可以把一种类型的错误转化成另一种类型
练习