小编想实现,视图中没有捕获到的异常,利用装饰器进行整体捕获,目的是为了保证程序的完整执行,也保证项目的良好运行。
装饰器代码如下:
闭包函数如下:
def _error_decorator():
def decorator(fn):
@wrap(fn)
def wrapped(*args, **kwargs):
try:
return fn(*args, **kwargs)
except Exception as error:
return str(e), 503
return wrapped
return decorator
接下来就是如何去使用装饰器了,代码如下:
@app.route('视图的路由', methods=['GET', 'POST', 'PUT', 'DELETE'])
@_error_decorator
def do_work():
pass
return json.dumps(json_data), 200