python - 如何执行200个功能的错误处理?

标签 python python-3.x error-handling try-catch python-decorators

以下是一个示例函数

def temp(data):
    a = sample_function_1(data)
    a = a[0][0]
    b = sample_function_2(data,'no',0,30)
    b = b[-1]
    c = sample_function_3(data, 'thank', 0, None, 15, 5)
    c = c[-2]
    print(a, b, c)
    return a, b, c

sample_function_1sample_function_2sample_function_3进行了错误处理。因此,这些函数返回的值不会引起问题,但是对变量a, b, c进行的计算可能会引发错误。

有200多个这样的功能,我需要有效地管理错误。我知道尝试,捕获,除外是一种选择,但是可以采取任何方法来解决此问题。

最佳答案

拥有200个函数来更改所有内容将是一项艰巨的工作,但是您可以尝试使用装饰器,每个函数只能拦截一个错误,但这可能是您情况的一个很好的折衷方案。

def exception_logger(func):
    wrapper(*args, **kwargs):
        try:
            return func(*args, **kwargs)
        except IndexError:
           ...doSomething...
           raise
    return wrapper

@exception_logger
def temp(data):
   ...doSomething...

关于python - 如何执行200个功能的错误处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55119201/

相关文章:

python - 如何在 TF 2.2 中创建自定义 PreprocessingLayer

python-3.x - imgaug.augmenters.Affine 中的 'order' 参数到底是如何工作的?

ruby - 如何更改 Rails 错误消息文本 "We' 抱歉,出了点问题。”

java - 如何从 Android 后台线程更新 UI 元素?

python - 删除级联的 Django 在 PostgreSQL 中没有产生正确的约束

python - 使用python的for循环API响应中的错误处理

Python Ctypes Read/WriteProcessMemory() - 错误 5/998 帮助!

python-3.x - 如何将scrapy数据中的数据发送到django模型?

python-3.x - tensorflow api 2.0 张量对象仅在启用急切执行时才可迭代。要迭代此张量,请使用 tf.map_fn

php - 如何停止 PHP 类中的其他方法?