直接上干货,至于异常是什么不再解释。
1. try-except
第一种最简单的方式:
try:
# 需要执行的语句
a = 1 /0 # 用0做除数,模拟异常
except:
# 捕获try中的异常,并做处理
print("有BUG")
程序会先执行try语句中的内容,如果try语句中有错误,程序会将异常抛给except,执行except语句,而不是报错或终止运行。
例:如果直接执行a = 1 / 0,终端会显示:
表示有一个ZeroDivisionError异常,意思是0做除数异常。
运行第一种方式的代码,添加了一些语句帮助理解:
2. 获取全部异常信息
第二种,获取异常信息:
try:
print("try语句开始执行")
# 需要执行的语句
a = 1 /0 # 用0做除数,模拟异常
print("try语句结束执行")
# 捕获try中的异常,并将异常信息赋值给变量e
except Exception as e:
print("遇到以下异常")
print(e)
这里将所有类型的异常信息使用Exception全部捕获(其实第1部分中的except也是捕获全部异常),并将其赋给变量e,为什么说是所有异常?可以查看第3部分。
3. 捕获部分异常信息
3.1 捕获一种异常
try:
print("try语句开始执行")
# 需要执行的语句
a = 1 /0 # 用0做除数,模拟异常
print("try语句结束执行")
# 捕获try中的ZeroDivisionError异常,并将异常信息赋值给变量e
except ZeroDivisionError as e:
print("遇到异常")
print(e)
3.2 捕获多种异常:
与3.1类似, 用元组表示
try:
print("try语句开始执行")
# 用0做除数,模拟异常
a = 1 /0
# 用只读模式打开一个不存在的文件,模拟异常
f = open("这是一个不存在的文件.txt", "r")
print("try语句结束执行")
# 捕获try中的ZeroDivisionError和FileNotFoundError 异常,并将异常信息赋值给变量e
except (ZeroDivisionError,FileNotFoundError ) as e:
print("遇到异常")
print(e)
4. 更完整的try语句
如下:
try:
# 需要执行的语句
except:
# try中有异常,执行
print("遇到异常了")
else:
# try中没有异常时执行的语句
print("无异常")
finally:
# 不论有无异常,都执行
print("程序执行结束")