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