在 Python 中捕獲所有異常

Manav Narula 2023年10月10日
  1. 使用 Exception 類捕獲 Python 中的所有異常
  2. 在 Python 中使用 BaseException 類捕獲所有異常
在 Python 中捕獲所有異常

我們使用 tryexcept 塊來處理異常。try 塊包含一些可能引發異常的程式碼。如果引發異常,那麼我們可以在 except 塊中指定可以執行的替代程式碼。我們知道我們在 Python 中具有不同型別的異常,以針對不同的異常具有多個 except 語句。

例如,

try:
    raise ValueError()
except ValueError:
    print("Value Error")
except KeyError:
    print("Key Error")

輸出:

Value Error

但是,有時,我們可能需要一個通用的 except 塊來捕獲所有異常。實現這一點非常簡單。如果我們在 except 塊中未提及任何特定的異常,則它將捕獲可能發生的任何異常。

以下程式碼實現了這一點。

try:
    # Your
    # Code
    pass
except:
    print("Exception Encountered")

但是,建議不要使用此方法,因為它還會捕獲通常要忽略的諸如 KeyBoardInterruptSystemExit 之類的異常。

使用 Exception 類捕獲 Python 中的所有異常

我們可以通過簡單地捕獲 Exception 類來避免上述錯誤。通常,所有內建的,非系統退出的異常以及使用者定義的異常都是從此類派生的。

例如,

try:
    # Your
    # Code
    pass
except Exception as e:
    print("Exception Encountered")

在 Python 中使用 BaseException 類捕獲所有異常

應該注意的是,即使以上方法也可以省略一些例外。我們還可以使用 BaseException 類,它位於層次結構的頂部。在某些情況下可能需要它,我們可以在下面的程式碼中看到它的用法。

try:
    # Your
    # Code
    pass
except BaseException as e:
    print("Exception Encountered")

在本教程中,我們討論了一些方法,這些方法可能並不完美,但可以捕獲大多數提出的異常。通常,不建議捕獲所有異常,因此請謹慎選擇使用的任何方法。

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

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

相關文章 - Python Exception