В ноутбуке аналитик написал except Exception: pass, чтобы «не падало». Почему это считается плохой практикой, если цель — быстро диагностировать проблемы?

AПотому что pass замедляет Python и делает код медленнее.
BПотому что except Exception: ловит только KeyError, а остальные ошибки всё равно упадут.
CПотому что так нельзя писать синтаксически: pass запрещён внутри except.
DПотому что ошибки скрываются, данные могут стать неверными, а traceback и первопричина теряются.
Правильный ответ. Широкий перехват с «молчаливым» pass скрывает баги и ломает отладку.

Разбор

Задача обработки исключений — не «чтобы не падало», а чтобы поведение было корректным и диагностируемым. except Exception: pass превращает реальные ошибки в тихие дефекты: метрики могут считаться неправильно, а вы не узнаете почему. Лучше ловить конкретные исключения и явно решать, что делать: логировать, ставить None, прекращать выполнение или поднимать raise.

Проверь себя · 1/3разбор после ответа
Вы поймали ошибку, залогировали её и хотите пробросить дальше, чтобы пайплайн упал и traceback сохранился. Что нужно сделать внутри except?
Тренировать Python в Telegram

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