Вы поймали ошибку, залогировали её и хотите пробросить дальше, чтобы пайплайн упал и трейс сохранился. Что нужно сделать внутри except?

AСделать return None, чтобы функция тихо завершилась без проброса исключения наружу
BСделать pass, чтобы блок выполнился без действий и пайплайн продолжил работу дальше
CСделать raise Exception('error'), чтобы поднять новое исключение вместо текущего
DСделать raise без аргументов, чтобы пробросить текущее исключение дальше с traceback
Правильный ответ. Внутри except команда raise без аргументов перекидывает текущее исключение дальше.

Разбор

Если ошибка не является ожидаемой и не должна быть «исправлена» на месте, лучше её не скрывать. raise без аргументов сохраняет оригинальный тип исключения и его трейс, что сильно облегчает отладку. Если вместо этого поднять новое исключение без контекста, можно потерять важные детали о первопричине.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

Ещё вопросы по теме «Исключения и отладка»