Python中拦截特定异常modulewide

2024-05-16 05:17:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经定义了一个自定义异常,我需要随时跟踪并触发一个进程。目前,我将容易引发错误的每一行放在try-except对中,但随着代码的增长,这看起来越来越难看和麻烦。你知道吗

有没有办法生成模块范围的try-except语句?你知道吗

<太长了,读不下去了,博士><强>

我目前正在这样做:

class MyError(exception):
   pass 

try:
   #error-prone code
except MyError:
   context_aware_function()

我在找这个:

class MyError(exception):
   pass 

errorManager.redirect(from=MyError,to=context_aware_operation)
#error-prone code

Tags: 代码定义进程错误contextexceptioncodeerror
1条回答
网友
1楼 · 发布于 2024-05-16 05:17:33

通过用decorators注释异常,可以在每个函数的基础上拦截异常。decorator被实现为一个函数,它接受一个函数作为输入并返回该函数的修改版本。在本例中,我们使用try/except块包装输入函数:

def catch_error(function):
    def wrapper(*args, **kws):
        try:
            return function(*args, **kws)
        except MyError:
            #handle error
    return wrapper

@catch_error
def foo():
    #error-prone code

相关问题 更多 >