Как использовать исключение original_exception из InternalServerError

#python #python-3.x #flask #werkzeug

Вопрос:

согласно документам werkzeug, InternalServerError имеет original_exception параметр. Это выглядит круто, и я хотел бы использовать его следующим образом для обработки исключений:

 @app.errorhandler(Exception)
def handle_errors(err):
    return err if isinstance(err, HTTPException) else InternalServerError(original_exception=err)
 

и войдите в @app.after_request систему, чтобы упаковать всю дополнительную информацию из request и response , где происходит стандартное ведение журнала запросов. К сожалению, я не могу узнать, как использовать сохраненные original_exception . Где он хранится?

Когда я регистрируюсь sys.exc_info() @app.after_request , он также пуст (или (None, None, None) ).

Один из способов , вероятно, заключается в том, чтобы регистрировать исключения непосредственно @app.errorhandler , request информация должна быть доступна там и response в любом случае не готова (из-за ошибки), но что происходит original_exception после сохранения InternalServerError ???

Спасибо за ответ, Михал