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

Kei*_*ler 2 python flask python-3.x

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

# Modules
app = Flask(__name__)
app.handle_exception = lambda e: 'exception!'
Run Code Online (Sandbox Code Playgroud)

dav*_*ism 5

用它装饰一个功能app.errorhandler.此路由将引发异常,并应返回与任何其他路由一样的响应.请注意,您需要返回正确的http状态代码作为响应的一部分.

错误处理程序也可以处理状态代码.Flask会在未处理的异常中引发500状态,因此您可以为此添加处理程序.

@app.errorhandler(500)
def handle_internal_server_error(e):
    return render_template('500.html'), 500
Run Code Online (Sandbox Code Playgroud)

请注意,如果您启用了Werkzeug调试器,例如使用app.run(debug=True)或其他一些方法,调试器将在您的自定义500错误处理程序之前处理内部错误.