学习笔记_错误处理

来源:互联网 发布:网络销售灰色项目 编辑:程序博客网 时间:2024/05/16 05:42

学习笔记_错误处理

学习日期:2016年9月28日
学习课程:错误处理 - 廖雪峰的官方网站

try

  • try…except…finally…的处理机制。

  • try来运行一段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块,执行完except后,如果有finally语句块,则执行finally语句块,至此,执行完毕。

  • Python的错误其实也是class,所有的错误类型都继承自BaseException,所以在使用except时需要注意的是,它不但捕获该类型的错误,还把其子类也“一网打尽”。

  • 使用try…except捕获错误还有一个巨大的好处,就是可以跨越多层调用,比如函数main()调用foo(),foo()调用bar(),结果bar()出错了,这时,只要main()捕获到了,就可以处理。

调用堆栈

  • 如果错误没有被捕获,它就会一直往上抛,最后被Python解释器捕获,打印一个错误信息,然后程序退出。

  • 如果出现错误的话,我们从上往下可以看到整个错误的调用函数链,然后找到错误的源头。

纪录错误

  • Python内置的logging模块可以非常容易地记录错误信息,同时让程序继续执行下去。

抛出错误

  • 我们可以通过raise语句抛出错误。
  • 只有在必要的时候才定义我们自己的错误类型。如果可以选择Python已有的内置的错误类型(比如ValueErrorTypeError),尽量使用Python内置的错误类型。
  • raise语句如果不带参数,就会把当前错误原样抛出。
  • 在except中raise一个Error,还可以把一种类型的错误转化成另一种类型。(绝对不应该转化完全不相干的错误类型)
0 0
原创粉丝点击