我喜欢Flask的错误捕获。很简单:
@app.errorhandler(404) def pageNotFound(error): return "page not found"
就像魅力。但这对于500错误代码不起作用。当出现问题时,我想捕获Python错误,代码中引发了异常。那可能吗?
我应该注意,如果我显式调用return abort(500)视图,则500错误处理程序确实可以工作。因此,这明确适用于Python代码失败的情况。
return abort(500)
默认情况下,你所描述的是Flask的工作方式。我的假设是你正在调试模式下运行,因此在调试屏幕中会向你显示异常。确保关闭调试模式,然后重试。这是直接来自代码本身的注释:
当发生未捕获的异常时,将启动默认异常处理。在调试模式下,异常将立即重新引发,否则将被记录并使用500个内部服务器错误的处理程序。如果不存在这样的处理程序,则会显示默认的500内部服务器错误消息。