Python零基礎(chǔ)入門學(xué)習(xí)26:高級特性之異常處理

:本文所有代碼均經(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.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容