Flask中有没有办法为无法处理的异常创建自定义函数?我的真正目标是记录异常并在发生意外情况时返回HTTP 500。
# Modules
app = Flask(__name__)
app.handle_exception = lambda e: 'exception!'
答案 0 :(得分:5)
用app.errorhandler
装饰一个函数。此路由将引发异常,并应返回与任何其他路由一样的响应。请注意,您需要返回正确的http状态代码作为响应的一部分。
错误处理程序也可以处理状态代码。 Flask会在未处理的异常中引发500状态,因此您可以为此添加处理程序。
@app.errorhandler(500)
def handle_internal_server_error(e):
return render_template('500.html'), 500
请注意,如果您启用了Werkzeug调试器,例如使用app.run(debug=True)
或其他一些方法,调试器将在您的自定义500错误处理程序之前处理内部错误。