python对异常_关于python中的异常
1. try....except(except1,except2),可以捕獲多個異常,如果都未捕獲到,則程序終止
try:
a=[1,2,3]
print(a[4])
except(IndexError, ZeroDivisionError):
print('發生了錯誤')
print('1111')
2.普通異常的捕獲:
a=input('請輸入整數:')
try:
a= int(a)
print(a**2)
except Exception as e:
print(e)
print(1111)
測試輸入非整數:
3.處理異常時,打印堆棧信息,需要引入traceback包
import traceback
# 打印堆棧
a = input("請輸入整數")
try:
a = int(a)
print(a ** 2)
except Exception as e:
# 引入traceback,程序不會退出
traceback.print_exc()
print('1111111')
4.try...except...finally:
<1>.try里面發生了異常,except捕獲到了,finally會執行
import traceback
a = input("請輸入整數")
try:
a = int(a)
print(a ** 2)
except Exception as e:
# 引入traceback,程序不會退出
traceback.print_exc()
finally:
print('finally')
<2>.try里面沒有發生異常,finally也會執行:
還是上面的代碼,測試未發生異常的示例:
<3>.try里面發生了異常,except沒有捕獲到,finnally也會執行
import traceback
# 打印堆棧
a = input("請輸入整數")
try:
a = int(a)
print(a ** 2)
except ZeroDivisionError as e:
# 引入traceback,程序不會退出
traceback.print_exc()
finally:
print('finally')
` 上面的示例,except捕獲的異常不對,此時finally也會執行
如果將finally去掉,改成print(),則print不會執行:
import traceback
a = input("請輸入整數")
try:
a = int(a)
print(a ** 2)
except ZeroDivisionError as e:
# 引入traceback,程序不會退出
traceback.print_exc()
print('finally')
總結
以上是生活随笔為你收集整理的python对异常_关于python中的异常的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 5.1 innodb trx
- 下一篇: python 预测算法_通过机器学习的线