все Python 3tracebackфункция
traceback.format_exception_only()
трассировка в строку
Только последняя часть трассировки — «Тип: сообщение» — без кадров стека; для короткого сообщения пользователю.
Синтаксис
lines = traceback.format_exception_only(exc, /, *, show_group=False)
Возвращает список строк, обычно из одной, но у SyntaxError строк несколько (файл, текст и «^» под местом ошибки), а с Python 3.11 добавляются заметки из add_note(). Отличие от str(e): str даёт только сообщение без типа, а у KeyError — ключ в кавычках, что выглядит странно; эта функция добавляет имя типа. Форма с одним аргументом (exc) — с 3.10, раньше передавали тип и значение.
Примеры
# Python 3.11+
import traceback
e = ValueError('пустой ввод')
e.add_note('введите число')
print(traceback.format_exception_only(e))
# → ['ValueError: пустой ввод\n', 'введите число\n']
import traceback
e = KeyError('id')
print(str(e)) # → 'id'
print(traceback.format_exception_only(type(e), e)) # → ["KeyError: 'id'\n"]
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности