Python_base_04 异常捕捉
表现形式:
try:
可能出现异常的代码块
except Exception as 变量名:
遇到异常时的处理方式
打印变量
异常处理中使用else
含义:
如果没有捕获到异常,则执行else中的代码块
表现形式:
try:
可能出现异常的代码块
except Exception:
遇到异常时的处理方式
else:
没捕获到异常时执行的代码块
示例:
1 try:
2 print("abcdefg")
3 except Exception:
4 print("---已知晓异常---")
5 else:
6 print("程序无异常")
7 print("Hello World")
运行结果:
abcdefg 程序无异常 Hello World
异常处理中使用finally
含义:
无论是否捕获到异常,最后都需执行finally中的代码块
表现形式:
try:
可能出现异常的代码块
except Exception:
遇到异常时的处理方式
else:
没捕获到异常时执行的代码块
finally:
最后一定会执行的代码块
示例:
1 try:
2 f = open("test.txt","r")
3 except Exception:
4 print("---已知晓异常---")
5 else:
6 print("程序无异常")
7 finally:
8 f.close()
9 print("Hello World")
运行结果:
---已知晓异常---
Traceback (most recent call last):
File "F:/untitled/Python_jichu/异常.py", line 8, in <module>
f.close()
NameError: name 'f' is not defined
说明:
因为不存在test.txt文件,所以f.close()会报错退出

替换错误类型,并打印出错误信息,如下图:

finally 是不管有没有异常,都会执行的。



浙公网安备 33010602011771号