python异常捕捉以及处理
Posted 大唐爱学习
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python异常捕捉以及处理相关的知识,希望对你有一定的参考价值。
看标题觉得高大上,好像能处理所有的异常。但是,事实是只能按照字面的意思来理解这一段话。
众所周知写代码哪有不出bug的?
那么出现了bug 我们不想让程序因为bug的存在而退出。那么要怎么做呢?
今天来写一下这个。
try:
代码
except exception:
代码
注意:except exception 会捕捉所有的异常,简称:万能异常。而我所知道的异常有: 索引异常 变量名字异常 迭代异常 无法调用异常 。。。。。等等有很多异常
但是一旦使用万能异常就会包庇所有的其它异常。正常的使用方式是应该把万能异常写在捕捉异常的最下方。 except 去捕捉你知道或者预料要出现的异常。这样写的好处是方便你改bug
我们的异常处理应该是小段小段的使用,方便代码的调试。
except exception as a: print(a) 可以打印出异常的类型
为了偷懒,so我就没有打代码,直接粘贴过来图片了, 捕捉异常之后可以使用else: else的作用是假如这个程序没有报错执行else内的代码。
举例:我们发送邮件的时候会存在发送的邮箱号码不能使用,或者网络错误无法发送。我们不知道是否这个邮件发送出去了。那么else就可以用在捕捉异常之后,意思是代码没有发生异常使用else内的代码!
finally 的作用比较神奇,不管是代码无异常运行还是异常运行都会运行到finally内 ,那么它的作用比较神奇。它在函数内部使用,即使return 也会运行finally内的代码。
粘贴一发老师写的总结:
# 程序一旦发生错误,就从错误的位置停下来了,不在继续执行后面的内容
# 使用try和except就能处理异常
#try是我们需要处理的代码
#except 后面跟一个错误类型 当代码发生错误且错误类型符合的时候 就会执行except中的代码
#except支持多分支
#有没有一个能处理所有错误的类型 : Exception
# 有了万能的处理机制仍然需要把能预测到的问题单独处理
# 单独处理的所有内容都应该写在万能异常之前
# else : 没有异常的时候执行else中的代码
# finally : 不管代码是否异常,都会执行
# finally和return相遇的时候 依然会执行
# 函数里做异常处理用,不管是否异常去做一些收尾工作
以上是关于python异常捕捉以及处理的主要内容,如果未能解决你的问题,请参考以下文章