使用Flask错误处理程序一次捕获任何Werkzeug异常

时间:2018-05-04 10:20:40

标签: python flask error-handling werkzeug

我找不到如何使用Flask错误处理程序捕获任何Werkzeug异常。

在处理程序之后,返回状态为500的json,以查找由Werkzeug引发的应用程序抛出的任何异常(专用错误)。

@opendataApp.errorhandler(Exception)
def handleException(error):
    result = {
        'error': {
            'message': str(error)
            # ...
        }
    }
    return result, 500

我可以使用以下方式路由特定的Werkzeug错误:

@opendataApp.errorhandler(404)

或者:

@opendataApp.errorhandler(NotFound)

装饰者,但以下不起作用:

@opendataApp.errorhandler(HTTPException)

它不会处理任何Werkzeug错误。

就像Flask Error Handler想要了解Werkzeug的顶级类并且不会从其继承树中推断出来。但我知道它有能力,因为Exception处理程序捕获任何内置的子类错误(例如。NotImplementedError)。

所以我的问题是:如何使用Flask Error Handler立即捕获Werkzeug异常?

1 个答案:

答案 0 :(得分:2)

升级到Flask 1.0,它允许为基础HTTPException添加错误处理程序。

pip install -U flask