在 Python 中捕獲所有異常
Manav Narula
2023年1月30日
2021年4月29日
我們使用 try
和 except
塊來處理異常。try
塊包含一些可能引發異常的程式碼。如果引發異常,那麼我們可以在 except
塊中指定可以執行的替代程式碼。我們知道我們在 Python 中具有不同型別的異常,以針對不同的異常具有多個 except
語句。
例如,
try:
raise ValueError()
except ValueError:
print("Value Error")
except KeyError:
print("Key Error")
輸出:
Value Error
但是,有時,我們可能需要一個通用的 except
塊來捕獲所有異常。實現這一點非常簡單。如果我們在 except
塊中未提及任何特定的異常,則它將捕獲可能發生的任何異常。
以下程式碼實現了這一點。
try:
##Your
##Code
except:
print("Exception Encountered")
但是,建議不要使用此方法,因為它還會捕獲通常要忽略的諸如 KeyBoardInterrupt
和 SystemExit
之類的異常。
使用 Exception
類捕獲 Python 中的所有異常
我們可以通過簡單地捕獲 Exception
類來避免上述錯誤。通常,所有內建的,非系統退出的異常以及使用者定義的異常都是從此類派生的。
例如,
try:
##Your
##Code
except Exception as e:
print("Exception Encountered")
在 Python 中使用 BaseException
類捕獲所有異常
應該注意的是,即使以上方法也可以省略一些例外。我們還可以使用 BaseException
類,它位於層次結構的頂部。在某些情況下可能需要它,我們可以在下面的程式碼中看到它的用法。
try:
##Your
##Code
except BaseException as e:
print("Exception Encountered")
在本教程中,我們討論了一些方法,這些方法可能並不完美,但可以捕獲大多數提出的異常。通常,不建議捕獲所有異常,因此請謹慎選擇使用的任何方法。
Author: Manav Narula
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn