如何对200个功能执行错误处理?

问题描述 投票:0回答:2

以下是一个示例函数

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多个这样的功能,我需要有效地管理错误。我知道try,catch,除了是一个选项,但有没有任何方法可以解决这个问题。

python python-3.x error-handling try-catch python-decorators
2个回答
0
投票

有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...

0
投票

我想你可以定义一个函数,只需在任何函数的任何except块中调用exception_logger函数。

import traceback

def exception_logger():
    exception_log = traceback.format_exc().splitlines()
    exception_log.append(str(datetime.now()))
    print exception_log
    return exception_log

def hello():
    try:
        print("Hello World!")

    except Exception as e:
        exception_logger()
© www.soinside.com 2019 - 2024. All rights reserved.