在Flask中为未处理的异常创建自定义异常处理程序

时间:2014-12-18 17:10:22

标签: python python-3.x flask

Flask中有没有办法为无法处理的异常创建自定义函数?我的真正目标是记录异常并在发生意外情况时返回HTTP 500。

# Modules
app = Flask(__name__)
app.handle_exception = lambda e: 'exception!'

1 个答案:

答案 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错误处理程序之前处理内部错误。