Поймайте любые исключения Werkzeug сразу с помощью обработчика ошибок Flask - PullRequest
0 голосов
/ 04 мая 2018

Не могу найти, как перехватить какие-либо исключения 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?

1 Ответ

0 голосов
/ 04 мая 2018

Обновление до Flask 1.0, которое позволяет добавить обработчик ошибок для базы HTTPException.

pip install -U flask
...