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

时间:2019-03-12 10:25:56

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

以下是示例函数

var imageView: UIImageView = {
    let img = UIImageView()
    img.pin_setImage(from: yourDreamInstance.imageUrl)
    return img
}()

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_2进行了错误处理。因此,这些函数返回的值没有问题,但是对变量sample_function_3进行的计算可能会引发错误。

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

2 个答案:

答案 0 :(得分: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()

答案 1 :(得分: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...