将每个方法中的try...catch...抽出来,写成一个修饰器,代码简单更容易维护
from functools import wraps
def log_exception(func): @wraps(func) def wrapper(*args, **kwargs): try: return func(*args, **kwargs) except Exception as e: logintofile("[error in {}] message: {} args:{} kwargs:{}" .format(func.__name__, str(e), args, kwargs)) return None return wrapper
如果func抛出异常,则返回None
如果需要自定义异常时的返回结果,可以将修饰器带上参数(python带参和不带参修饰器)