注:本文所有代碼均經(jīng)過Python 3.7實際運行檢驗,保證其嚴(yán)謹(jǐn)性。
本文閱讀時間約為2分鐘。
Python異常處理機制
Python代碼運行過程中可能遭遇各種錯誤。常見的錯誤類型有:
- 語法錯誤:SyntaxError。
- 除以0錯誤:ZeroDivisionError。
- 列表下標(biāo)越界錯誤:IndexError。
- 類型錯誤:TypeError。
- 訪問變量不存在錯誤:NameError。
- 字典關(guān)鍵字不存在錯誤:KeyError。
- 未知的變量屬性錯誤:AttributeError。
以上這些錯誤會引起程序終止退出,如果希望掌控意外,就需要在可能出錯誤的地方設(shè)置陷阱,捕捉錯誤。用try-except語句來設(shè)置陷阱。
try:
<檢測語句>
except <錯誤類型> [as e]:
<處理異常>
else:
<語句塊>
finally:
<語句塊>
try語句:為縮進的代碼設(shè)置陷阱。
except語句:處理錯誤的代碼。
else語句:沒有出錯時執(zhí)行的代碼。
finally語句:無論出錯與否,都會執(zhí)行這個語句。
針對不同異常可以設(shè)置多個except。
一個處理異常的代碼實例
def divideNew(x, y):
try:
result = x / y
except ZeroDivisionError as e:
print("division by zero! " + str(e))
except TypeError:
divideNew(int(x), int(y))
else:
print("result is", result)
#當(dāng)try后面的except語句沒有執(zhí)行時,將執(zhí)行else語句。
finally:
print("executing finally clause") #finally語句無論如何都會被執(zhí)行
print(divideNew(3, 2))
>>>
result is 1.5
executing finally clause
None
>>>
To be continued.