您好,登錄后才能下訂單哦!
小編給大家分享一下捕獲Python中異常的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家學習,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學習方法吧!
Python 提供了try except語句捕獲并處理異常,該異常處理語句的基本語法結構如下:
try: 可能產生異常的代碼塊 except [(Error1, Error2, ...) [as e]]: 處理異常的代碼塊1 except [(Error3, Error4, ...) [as e]]: 處理異常的代碼塊2
該格式中,[] 括起來的部分可以使用,也可以省略;(Error1,Error2,...) 、(Error3,Error4,...) 表示各自的 except 塊可以處理異常的具體類型;[as e] 表示將異常類型賦值給變量 e(方便在 except 塊中調用異常類型)。
注意,except 后面也可以不指定具體的異常名稱,這樣的話,表示要捕獲所有類型的異常。
另外,從 try except 的基本語法格式可以看出,try 塊僅有一個,但 except 代碼塊可以有多個,這是為了針對不同的異常類型提供不同的異常處理方式。當程序發生不同的意外情況時,會對應不同的異常類型,Python 解釋器就會根據該異常類型來決定使用哪個 except 塊來處理該異常。
通過在 try 塊后提供多個 except 塊可以無須在異常處理塊中使用 if 判斷異常類型,但依然可以針對不同的異常類型提供相 應的處 理邏輯,從而提供更細致、更有條理的異常處理邏輯。
try except 語句的執行流程如下:首先執行 try 中的代碼塊,如果執行過程中出現異常,系統會自動生成一個異常對象,該異常對象會提交給 Python 解釋器,此過程被稱為引發異常。當 Python 解釋器收到異常對象時,會尋找能處理該異常對象的 except 塊,如果找到合適的 except 塊,則把該異常對象交給該 except 塊處理,這個過程被稱為捕獲異常。如果 Python 解釋器找不到捕獲異常的 except 塊,則程序運行終止,Python 解釋器也將退出。
事實上,不管程序代碼塊是否處于 try 塊中,甚至包括 except 塊中的代碼,只要執行該代碼塊時出現了異常,系統總會自動生成一個 Error 對象。如果程序沒有為這段代碼定義任何的 except 塊,則 Python 解釋器無法找到處理該異常的 except 塊,程序就會停止運行;反之,如果程序發生異常,并且該異常經 try 捕獲并由 except 處理完成,則程序會繼續執行。
舉個例子:
try: a = int(input("輸入被除數:")) b = int(input("輸入除數:")) c = a / b print("您輸入的兩個數相除的結果是:", c ) except (ValueError, ArithmeticError): print("程序發生了數字格式異常、算術異常之一") except : print("未知異常") print("程序繼續運行")
程序運行結果為:
輸入被除數:a 程序發生了數字格式異常、算術異常之一 程序繼續運行
上面程序中,第 6 行代碼使用了(ValueError, ArithmeticError)來指定所捕獲的異常類型,這就表明該 except 塊可以同時捕獲這 2 種類型的異常;第 8 行代碼只有 except 關鍵字,并未指定具體要捕獲的異常類型,這種省略異常類的 except 語句也是合法的,它表示可捕獲所有類型的異常,一般會作為異常捕獲的最后一個 except 塊。除此之外,由于 try 塊中引發了異常,并被 except 塊成功捕獲,因此程序才可以繼續執行,才有了“程序繼續運行”的輸出結果。
以上是捕獲Python中異常的方法的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。