Не могу найти, как перехватить какие-либо исключения Werkzeug с помощью обработчика ошибок Flask.
После обработчика верните json со статусом 500 для всех исключений, выданных приложением (выделенные ошибки), которые не вызываются из 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
).
Итак, мой вопрос: как я могу поймать исключения Werkzeug сразу, используя Flask Error Handler?