python记录异常的修饰器

将每个方法中的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: {}\nargs:{}\nkwargs:{}"
                        .format(func.__name__, str(e), args, kwargs))
        return None
    return wrapper

如果func抛出异常,则返回None

如果需要自定义异常时的返回结果,可以将修饰器带上参数(python带参和不带参修饰器

posted @ 2021-05-31 14:46  乱炖er  阅读(56)  评论(0编辑  收藏  举报