忽略 Python 中的異常

Vaibhhav Khetarpal 2023年1月30日 2021年10月2日
  1. 在 Python 中的 except 塊中使用 pass 語句
  2. 在 Python 中的 except 塊中使用 sys.exc_clear() 語句
忽略 Python 中的異常

異常是在引發時會改變程式流程的事件。

異常是由於程式在語法上是正確的,但在執行程式碼時仍然出錯。此錯誤不會停止程式的執行,而是會更改程式的預設流程。

在 Python 中,我們使用 try...except 塊處理異常。本教程將討論幾種忽略異常並繼續使用 Python 編寫程式碼的方法。

在 Python 中的 except 塊中使用 pass 語句

pass 語句可以被視為 Python 程式設計中的佔位符。它返回一個 NULL 語句,因此不產生任何值。但是,Python 直譯器不會忽略 pass 語句,並且我們可以防止在使用該語句的地方出現空程式碼錯誤。

當在 try...except 語句中使用 pass 語句時,它只會傳遞任何錯誤並且不會改變 Python 程式的流程。

以下程式碼使用 except 塊中的 pass 語句忽略異常並繼續執行 Python 中的程式碼。

try:
    print(hey)
except Exception:
    pass

print("ignored the exception")

上面的程式碼提供了以下輸出。

ignored the exception

儘管此函式在 Python 3 及更高版本中始終有效,但使用 pass 語句被認為是一種糟糕的程式設計習慣。它沒有為程式中可能出現的錯誤提供解決方案。此外,識別給定程式中的錯誤要困難得多,因為它忽略了每一個錯誤。

在 Python 中的 except 塊中使用 sys.exc_clear() 語句

在 Python 2 中,直譯器會記住最後丟擲的異常,而在較新版本的 Python 中則不會發生。因此,Python 3 以後釋出的版本不需要 sys.exc_clear() 語句。sys.exc_clear() 語句可用於清除 Python 直譯器最後丟擲的異常。

以下程式碼使用 except 塊中的 sys.exc_clear() 語句來忽略異常並繼續使用 Python 中的程式碼。

try:
    print(hey)
except Exception:
    sys.exc_clear()

print("ignored the exception")

雖然這兩種方式設法使程式執行沒有任何錯誤,但不建議忽略程式中的所有錯誤。但是,僅忽略特定錯誤或某些錯誤是大多數程式設計師為健康程式所做的做法。

限制在程式中使用 pass 語句和 sys.exc_clear() 語句還提高了程式的可讀性和錯誤識別能力。

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

相關文章 - Python Exception