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异常捕捉以及处理的主要内容,如果未能解决你的问题,请参考以下文章

python--异常处理

python学习笔记8:异常处理

异常处理

异常处理

Python基础-14异常处理

Python基础-14异常处理