一尘不染

在Flask中捕获500服务器错误

flask

我喜欢Flask的错误捕获。很简单:

@app.errorhandler(404)
def pageNotFound(error):
    return "page not found"

就像魅力。但这对于500错误代码不起作用。当出现问题时,我想捕获Python错误,代码中引发了异常。那可能吗?

我应该注意,如果我显式调用return abort(500)视图,则500错误处理程序确实可以工作。因此,这明确适用于Python代码失败的情况。


阅读 972

收藏
2020-04-07

共1个答案

一尘不染

默认情况下,你所描述的是Flask的工作方式。我的假设是你正在调试模式下运行,因此在调试屏幕中会向你显示异常。确保关闭调试模式,然后重试。这是直接来自代码本身的注释:

当发生未捕获的异常时,将启动默认异常处理。在调试模式下,异常将立即重新引发,否则将被记录并使用500个内部服务器错误的处理程序。如果不存在这样的处理程序,则会显示默认的500内部服务器错误消息。

2020-04-07