Python 異常被我壓下來了 suppress 用法


建立時間: 2023年2月20日 21:05
更新時間: 2023年2月20日 21:05

說明

正常情況下大家寫程式遇到異常通常是捕捉下來處理 try … catch …,但這次我要分享如何把異常壓下來,壓下來意思就是大事化小,小事化無的道理。

範例

當你使用 suppress 時,如果在 with 塊中遇到被指定的異常類型,這些異常將會被忽略,而其他異常仍然會傳播到上一級的代碼中。

example.py

from contextlib import suppress

def divide(a, b):
    with suppress(ZeroDivisionError):
        result = a / b
        print(f"{a} / {b} = {result}")

divide(10, 2)
divide(10, 0)
divide(5, 1)

輸出

10 / 2 = 5.0
5 / 1 = 5.0

在這個例子中,divide 函數用來計算 a 除以 b 的結果,當 b 為0時,會發生 ZeroDivisionError 異常。我們在函數內使用 with suppress(ZeroDivisionError) 來捕獲這個異常,當這個異常發生時,程式碼不會中斷,而是忽略這個異常,繼續執行下去。

在這個例子中,第二次 divide 函數呼叫發生了 ZeroDivisionError 異常,但是由於我們在函數中使用了 suppress,所以這個異常被忽略了,程式碼繼續執行下去,並且成功輸出了其他兩個除法運算的結果。

觀看次數: 939
exceptionpythonsuppress
按讚追蹤 Enjoy 軟體 Facebook 粉絲專頁
每週分享資訊技術

一杯咖啡的力量,勝過千言萬語的感謝。

支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!