gpt4 book ai didi

python - 在 Python 中拦截特定模块范围内的特定异常

转载 作者:太空宇宙 更新时间:2023-11-04 03:41:26 25 4
gpt4 key购买 nike

我已经定义了一个自定义异常,我需要在它被抛出时跟踪并触发一个进程。目前,我将容易引发该错误的每一行都包含在 try-except 对中,但随着代码的增长,这开始看起来越来越丑陋和麻烦。

有没有办法制作一个模块范围的try-except语句?

tl;dr

我目前正在这样做:

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

最佳答案

您可以通过使用 decorators 注释来基于每个函数拦截异常。 .装饰器被实现为一个函数,它将一个函数作为输入并返回该函数的修改版本。在这种情况下,我们用 try/except block 包装输入函数:

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

关于python - 在 Python 中拦截特定模块范围内的特定异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26227873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com