我有一个问题,与装饰者有关。例如,我编写了下一个处理错误的装饰器,然后输出错误。
def handle_error(func):
def wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
except Exception as err:
print(err)
return wrapper
@handle_error
def raise_error():
return 1 / 0
raise_error()
但是,如果我想对 Flask 做同样的事情,那就不行了。
@app.route('/')
@handle_error
def index():
return {'hello'}
if __name__ == '__main__':
app.run()
所以我猜, route 装饰器中出现的错误,我是对的吗?如果有,我有疑问:技术上我可以编写一个装饰器,它将处理来自 route 装饰器的所有异常?
答案 0 :(得分:0)
您可以在记录器中使用错误处理程序。
logger = app.logger()
@app.errorhandler(500)
def somehandler(e):
logger.critical(e.description) # this is level of logger
因此,当发生500错误时,记录器将起作用。 您也可以自行犯错。
How can I implement a custom error handler for all HTTP errors in Flask?