一、异常处理
什么是异常、什么是异常处理
异常是指程序在运行过程中发生的错误事件,影响程序的正常执行。
异常并不是一定会发生,默认情况下,程序运行中遇到异常时将会终止,并在控制台打印出异常出现的堆栈信息。
异常处理是指程序设计时为了避免因异常而导致程序终止而做的一些额外操作。异常处理可以使得异常出现后,程序任然可以执行。
1、常见的异常错误
print(a) #变量或函数未定义
![](https://i-blog.csdnimg.cn/blog_migrate/bc6baa07a74791d8eefcedafdac4bfbb.png)
10/0 #除数不能为0 ZeroDivisionError
![](https://i-blog.csdnimg.cn/blog_migrate/10b37b123b7059da2b8eed374c5705ae.png)
a = eval(input ('a = '))
b = 10/a
print('b= ',b)
![](https://i-blog.csdnimg.cn/blog_migrate/a9e2ebf353d4d429c9d8434ad6051983.png)
open('../Stu_pack/abc.txt')
![](https://i-blog.csdnimg.cn/blog_migrate/c50c33c9167850540d646042e315c74d.png)
2、如何处理异常
python中通常可以将发生异常的代码放在try语句中,
如果发生异常则通过expect语句来捕获异常并对做一些额外处理
如果没有发生异常则执行后面的else语句
最后执行finally语句做一些else语句
Python中还提供raise语句允许用户主动抛出异常,raise关键字后面需要提供一个异常实例或者异常类
如果传导的是异常类,则会通过调用无参数的构造方法来实例化对象。
如果捕获到了异常,但是暂时不处理,可以直接通过raise关键字后面什么都不用写。
try:
a = float( input('请输入a = '))
b = 10/a
except:
if a ==0:
print('ZeroDivisionError:除数不能为0!')
else:
print('b= ',b)
finally:
c = a+b
print('c= ',c)