最近在学习Python,觉得异常这块儿有点乱,自己来总结一下,不全或者错误的地方欢迎大家来指正
Python异常,就是Python代码在运行期间发生的错误,每当发生错误的时候,如果你编写了处理异常的代码,程序会继续执行,如果你未对异常进行处理,程序将会停止,并显示一个traceback,其中包含有关异常的报告
使用try-excepted即使出现异常,代码也会继续运行,并且显示你在excepted里面编写的处理信息,而不是让人摸不到头脑的traceback消息
1.try excepted 组合:
try:
# a = 10
print(a)
except NameError as e:
print("错误:{}".format(e))
输出
2.try excepted else 组合:
try:
a = 10
print(a)
except NameError as e:
print("错误:{}".format(e))
else:
print("没有发生错误会执行")
输出
3.try excepted else finally 组合:
try:
a = 10
print(a)
except NameError as e:
print("错误:{}".format(e))
else:
print("没有发生错误会执行")
finally:
print("无论有没有发生错误,都会执行")
输出
4.try excepted else finally raise组合:
当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行
raise是把异常处理中的错误抛出来,让我们看到traceback信息,一般都是我们处理完异常信息后,我们可以把错误抛出,在后期的单元测试中生成测试报告用的比较多
raise处理完异常信息后抛出异常
try:
# a = 10
print(a)
except NameError as e:
print("错误:{}".format(e))
raise e
else:
print("没有发生错误会执行")
finally:
print("无论有没有发生错误,都会执行")
输出
5. 一次抛出多个异常:形式1
try:
# a = 10
print(a)
except TypeError as e:
print("错误1:{}".format(e))
except NameError as e:
print("错误2:{}".format(e))
else:
print("没有发生错误会执行")
finally:
print("无论有没有发生错误,都会执行")
输出
6. 一次抛出多个异常:形式2
try:
# a = 10
print(a)
except (TypeError, NameError)as e:
print("错误1:{}".format(e))
else:
print("没有发生错误会执行")
finally:
print("无论有没有发生错误,都会执行")
输出