#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
???
Спасибо за ответ, Михал