我找不到如何使用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异常?
答案 0 :(得分:2)
升级到Flask 1.0,它允许为基础HTTPException
添加错误处理程序。
pip install -U flask