在 Python 中沒有 except 的 try 語句
Samyak Jain
2021年10月2日
Python 中的異常是在程式碼執行過程中檢測到的錯誤。不同型別的異常有 NameError
、TypeError
、ZeroDivisionError
、OSError
等等。
Python 中的 try
語句用於測試程式碼塊的異常,而 except
語句用於處理這些異常。當 try
塊中的程式碼引發錯誤時,將執行 except
塊中的程式碼。
我們可以捕獲所有異常,包括 KeyboardInterrupt
、SystemExit
和 GeneratorExit
。這種方法不應該用於處理異常,因為它是一個通用語句,會隱藏所有瑣碎的錯誤。
我們將討論如何在 Python 中使用沒有 except
的 try
塊。為了實現這一點,我們應該嘗試忽略異常。
我們不能在沒有 except
的情況下使用 try
塊,因此,我們唯一能做的就是嘗試忽略引發的異常,以便程式碼不會進入 except
塊並在 except 中指定
pass 語句
如前所示阻止。pass
語句相當於一行空程式碼。
我們也可以使用 finally
塊。無論是否發生異常,它都會執行程式碼。
try:
a = 1/0
except:
pass
finally:
print("Example")
輸出:
Example
在上面的程式碼中,如果 try
塊引發錯誤,except
塊將列印引發的異常。
要忽略異常,我們可以使用 contextlib
模組中的 suppress()
函式來處理 Python 中的異常
contextlib
模組中的 suppress()
函式可用於抑制非常具體的錯誤。此方法只能在 Python 3 中使用。
例如,
from contextlib import suppress
with suppress(IndexError):
a = [1,2,3]
a[3]
在上面的例子中,它不會引發 IndexError
。