РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
214 of 252 menu

Атрибут traceback

Атрибут traceback применяется к экземпляру класса HTTPError и содержит объект трассировки стека (объект типа traceback из стандартного модуля traceback). Если HTTP-ошибка была вызвана другим исключением, переданным в параметре exception, то в этом атрибуте будет храниться трассировка этого исключения. Если же исключение не передавалось, значение атрибута будет равно None. Атрибут доступен только для чтения и заполняется автоматически в момент создания объекта ошибки.

Синтаксис

error.traceback

Пример

Давайте создадим объект HTTPError без связанного исключения и проверим значение атрибута:

from bottle import HTTPError error = HTTPError(404, 'Not Found') res = error.traceback print(res)

Результат выполнения кода:

None

Пример

Давайте передадим в конструктор HTTPError реальное исключение и посмотрим, что попадёт в атрибут traceback:

from bottle import HTTPError try: raise ValueError('bad value') except ValueError as exc: error = HTTPError(500, 'Server Error', exception=exc) res = error.traceback print(type(res).__name__) print(res.tb_frame.f_code.co_name)

Результат выполнения кода:

"traceback" "<module>"

Пример

Давайте выведем полную трассировку стека из атрибута traceback с помощью стандартного модуля traceback:

import traceback from bottle import HTTPError try: raise ValueError('bad value') except ValueError as exc: error = HTTPError(500, 'Server Error', exception=exc) traceback.print_tb(error.traceback)

Результат выполнения кода:

File "app.py", line 5, in <module> raise ValueError('bad value')

Пример

Давайте обработаем ошибку в приложении Bottle и передадим информацию о трассировке в ответ:

import traceback from bottle import Bottle, HTTPError app = Bottle() @app.route('/') def index(): try: raise ValueError('bad value') except ValueError as exc: raise HTTPError(500, 'Server Error', exception=exc) @app.error(500) def handle_500(error): if error.traceback is not None: return traceback.format_tb(error.traceback)[-1] return 'no traceback'

Результат выполнения кода для адреса /:

<+html+> File "app.py", line 9, in index <-html+>

Смотрите также

  • класс HTTPError,
    который представляет HTTP-ошибку
  • атрибут exception,
    который хранит исходное исключение
  • атрибут status,
    который хранит HTTP-статус ошибки
  • атрибут body,
    который хранит тело ответа с ошибкой
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить