溫馨提示×

Python裝飾器怎樣處理異常

小樊
81
2024-11-02 05:27:14
欄目: 編程語言

在Python中,裝飾器可以用來修改或增強函數(shù)的行為。要處理異常,你可以在裝飾器內(nèi)部使用try-except語句來捕獲和處理異常。下面是一個簡單的示例,展示了如何在裝飾器中處理異常:

def exception_handler_decorator(func):
    def wrapper(*args, **kwargs):
        try:
            return func(*args, **kwargs)
        except Exception as e:
            print(f"Error occurred in {func.__name__}: {e}")
    return wrapper

# 使用裝飾器
@exception_handler_decorator
def divide(a, b):
    return a / b

# 調(diào)用函數(shù)
result = divide(10, 0)

在這個示例中,我們定義了一個名為exception_handler_decorator的裝飾器。這個裝飾器捕獲了func函數(shù)執(zhí)行過程中可能發(fā)生的任何異常,并在發(fā)生異常時打印一條錯誤消息。然后,我們使用這個裝飾器來裝飾一個名為divide的函數(shù),該函數(shù)執(zhí)行除法操作。當我們嘗試用0作為除數(shù)時,會引發(fā)一個ZeroDivisionError異常,裝飾器會捕獲這個異常并打印相應(yīng)的錯誤消息。

0