Python使用被稱為例外的特殊物件來管理程式執行期間發生的錯誤,每當發生執行錯誤時,Python都會創建一個例外物件,如果撰寫了處理該例外的代碼,程式將繼續執行;如果未對例外進行處理,程式將停止,并顯示一個Trackback,其中包含有關例外的報告,
1.try-except代碼塊
例外是用try-except代碼塊處理的,try-except代碼塊讓Python執行指定的操作,同時告訴Python發生例外時怎么辦,使用了try-except代碼塊時,即便出現例外,程式也將繼續執行:顯示撰寫的友好錯誤資訊,而不是顯示一個Trackback.
眾所周知,不能將一個數字除以0,但我們假設讓Python這樣做,會發生什么,撰寫程式如下所示:
我們發現在終端視窗出現了Trackback,并且沒有對num的值進行輸出,這就是我們前面說的,如果未對例外進行處理,程式將停止,并顯示一個Trackback,提示該錯誤為ZeroDivisionError例外,
當我們認為可能會發生錯誤時,可撰寫一個try-except代碼塊來處理可能引發的例外,
其語法格式:
我們將上面的程式通過try-except代碼塊進行完善,撰寫程式如下所示:
我們這里用一條輸出陳述句代替了例外處理程序,通過輸出結果發現,通過try-except代碼塊,例外情況被處理,程式正常運行,輸出了num的數值,
2.else代碼塊
通過將可能引發錯誤的代碼放在try-except代碼塊中,可提高程式抵御錯誤的能力,而else代碼塊中包含的是try中可能引發錯誤的代碼塊被成功執行后應該如何操作的代碼塊
其語法格式:
我們撰寫個用input函式來進行輸入,計算除法結果的程式,撰寫程式如下所示:
當我們正常輸入時,10/2的結果是5.0在else代碼塊中正常輸出,else代碼塊外result+1的計算結果6.0也被正常輸出了,
當我們除數輸入為0時,引發了ZeroDivisionError,經過例外處理,處理了這個錯誤,這時因為例外發生了,所以else代碼塊時不經過的,直接到了else代碼塊外,因為result的初始值為0,進行運算之后,結果為1,
本次程式舉例中用到的是ZeroDivisionError例外,程式中可能發生的例外時多種多樣的,我們需要知道在發生例外時的錯誤名稱,把它通過try-except或者try-except-else代碼塊來處理即可,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/555996.html
標籤:Python
下一篇:返回列表