python基礎:異常簡介
阿新 • • 發佈:2019-01-10
異常簡介
異常是指在語法正確的前提下,程式執行時報錯就是異常。
當Python指令碼發生異常時我們需要捕獲處理它,否則程式會終止執行。
異常舉例:
print('程式開始了')
print(1/0)
print('程式結束了')
執行結果
程式開始了 Traceback (most recent call last): File "E:/homework/pythonworksplace/dey10/demon07-異常簡介.py", line 9, in <module> print(1/0) ZeroDivisionError: division by zero
怎樣能讓程式發生異常時,不讓程式停止,能正常執行呢?如下效果,就需要捕獲異常。
while True:
try:
ret=eval(input('請輸入計算公式:'))
print(ret)
except ZeroDivisionError:
print('除數不能為0,請重新輸入')
執行結果:
請輸入計算公式:1+4
5
請輸入計算公式:1/0
除數不能為0,請重新輸入
請輸入計算公式:
捕獲異常
基本語法
try:
…程式碼1…
…程式碼2…
except 異常型別1:
…程式碼3…
except 異常型別2:
…程式碼4…
except 異常型別3:
…程式碼5…
注意:
如果發生的異常型別和捕獲的異常型別不相同,還是不能捕獲異常,程式還會結束。
try中一旦檢測到異常,就執行這個位置的邏輯
except捕獲多個異常
異常捕獲流程: 依次捕獲依次,直到捕獲到對應的異常。
多分支結構:
try:
…程式碼1…
…程式碼2…
except 異常型別1:
…程式碼3…
except 異常型別2:
…程式碼4…
except 異常型別3:
…程式碼5…
try: print('程式開始了') print(1/0) print('啦啦啦啦') lst=[] print(lst[1]) print('zzz') except IndexError: print('索引越界') except ZeroDivisionError: print('除數為0了...') print('程式結束了')
執行結果:
程式開始了
除數為0了...
程式結束了
元組結構:
try:
…程式碼1…
…程式碼1…
…程式碼1…
expect(異常型別1,異常型別2,…)
…程式碼4…
try:
print('程式開始了')
print(1/0)
print('啦啦啦啦')
lst=[]
print(lst[1])
print('zzz')
except (IndexError,ZeroDivisionError):
print('程式出錯了...')
print('程式結束了')
執行結果:
程式開始了
程式出錯了...
程式結束了