Выбор ответа Middle Исключения и контекстные менеджеры обновлено

Метод add_note у исключений

Вопрос

Что делает e.add_note("user_id=42") (Python 3.11+)?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Добавляет строку, видимую в traceback. addnote дописывает заметки в e.notes, и стандартный вывод traceback печатает их после сообщения.

Варианты ответа

  1. Меняет сообщение исключения str(e)
  2. Создаёт новое исключение-обёртку с заметкой
  3. Записывает строку в модуль logging на уровне INFO
  4. Добавляет строку, видимую в tracebackправильный ответ

Разбор

add_note дописывает заметки в e.__notes__, и стандартный вывод traceback печатает их после сообщения. Это способ добавить контекст, не меняя тип исключения и не оборачивая его. str(e) при этом не меняется, нового объекта не создаётся, с логированием метод не связан.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.