何为异常
在现实生活中,我们都或多或少遇到过一些不正常的时候,这个时候就可以称为人的“异常”了,人作为一个高等生物,也会有“异常”的时候。一个程序在运行的过程中难免也会出现异常,这种异常会导致程序功能的不正常,甚至导致程序崩溃,所以在程序开发中,也要考虑到异常的情况,由此展开到程序的异常处理
python 异常处理的方式
在python中异常处理方式分为两中:
try - except(捕获式)
assertions(断言式)
在程序开发中,我们通常使用捕获式来解决程序异常
捕获式处理异常语法
try:
可能出现异常的代码
except(异常名称):
一单出现异常执行的代码
else:
没有异常时执行的代码
finally:
不论是否异常都执行的代码
如何用捕获式处理多个异常
try:
可能出现异常的代码
except (Excp1 [, Excp2, Excp3, Excp4…Excpn]):
上述任一异常出现之后要执行的代码
try:
可能出现异常的代码
except Excp1:
出现Excp1异常之后执行的代码
except Excp2:
出现Excp1异常之后执行的代码
自定义异常
一门编程语言提供的信息错误有限,而且晦涩难懂,所有就引入了自定义异常
1.异常— 一种对象
自定义异常 – 一种自定义类型
自定义类型[异常] – 参考标准异常(继承Exception)—自定义异常(继承Exception)
2.主动抛出异常
在开发的过程中,主动出现一种错误,将错误抛出给程序告诉程序出错了。
通过raise关键字,抛出一个异常
3.自定义异常,就是为了专门抛出错误的,抛出错误,就是严重警告这里出现了什么问题
首先-代码执行过程中,出现了异常【系统标准异常】【信息不是很明白】
捕获系统异常,创建一个自定义异常
抛出自定义异常【自定义异常】【信息明确的错误】
自定义异常的目的:
转换异常信息,将不明确的异常信息转换成更加精确的异常信息
转换异常信息:异常的传递~传递更加明确的异常,给后面的代码进行处理!
finally
finally 语法作为程序是否异常都执行的语句,在程序中一般作为资源回收使用
try:
f = open("d:/test.txt", "w")
f.write(["a", "b"])
except FileNotFoundError as e:
print("文件操作失败")
finally:
f.close()
在这里程序执行是够正常都要进行关闭文件的动作,我们就可以使用finall语句进行内存回收