以下是一个示例函数
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_1
,sample_function_2
和sample_function_3
完成的。所以这些函数返回的值没有问题,但是对变量a, b, c
进行的计算会抛出错误。
有200多个这样的功能,我需要有效地管理错误。我知道try,catch,除了是一个选项,但有没有任何方法可以解决这个问题。
有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...
我想你可以定义一个函数,只需在任何函数的任何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()