Python使用被稱為異常 的特殊對象來管理程序執(zhí)行期間發(fā)生的錯誤。每當(dāng)發(fā)生讓Python不知所措的錯誤時,它都會創(chuàng)建一個異常對象廷粒。如果你編寫了處理該異常的代碼,程序?qū)⒗^ 續(xù)運(yùn)行;如果你未對異常進(jìn)行處理,程序?qū)⑼V?并顯示一個traceback,其中包含有關(guān)異常的報告窘拯。
異常是使用***try-except*** 代碼塊處理的红且。try-except 代碼塊讓Python執(zhí)行指定的操作,同時告訴Python發(fā)生異常時怎么辦。使用了try-except 代碼塊時,即便出現(xiàn)異常, 程序也將繼續(xù)運(yùn)行:顯示你編寫的友好的錯誤消息,而不是令用戶迷惑的traceback涤姊。(錯誤堆棧)
10.3.1 處理ZeroDivisionError 異常
10.3.2 使用try-except 代碼塊
當(dāng)你認(rèn)為可能發(fā)生了錯誤時,可編寫一個try-except 代碼塊來處理可能引發(fā)的異常暇番。你讓Python嘗試運(yùn)行一些代碼,并告訴它如果這些代碼引發(fā)了指定的異常,該怎么辦。 處理ZeroDivisionError 異常的try-except 代碼塊類似于下面這樣:
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
try:
print(5/0)
except ZeroDivisionError:
print("You can't divide by zero!")
屏幕快照 2017-11-02 下午10.37.55.png
在這個示例中,try 代碼塊中的代碼引發(fā)了ZeroDivisionError 異常,因此Python指出了該如何解決問題的except 代碼塊,并運(yùn)行其中的代碼思喊。這樣,用戶看到的是一條友 好的錯誤消息,而不是traceback: