Какая базовая ошибка в Python, чтобы поймать всё, и от чего наследовать пользовательские исключения?

Корень иерархии — BaseException, но прикладные ошибки обычно ловят через Exception. Собственные исключения следует наследовать от Exception или его подходящего подкласса.

Короткий ответ

Что ответить на собеседовании

Корень иерархии — BaseException, но прикладные ошибки обычно ловят через Exception. Собственные исключения следует наследовать от Exception или его подходящего подкласса.

Подробный разбор

Ответ с пояснениями

Корень иерархии — BaseException, но прикладные ошибки обычно ловят через Exception. Собственные исключения следует наследовать от Exception или его подходящего подкласса.

except Exception: перехватывает обычные ошибки приложения, но не KeyboardInterrupt, SystemExit и некоторые специальные сигналы завершения. except BaseException: или голый except: захватит и их, поэтому без специальной причины так делать не стоит. Для очистки ресурсов обычно нужен finally или контекстный менеджер, а не подавление всех ошибок. Пример доменного исключения: class OrderUnavailableError(Exception): pass. Перехватывайте наиболее конкретные типы и не скрывайте неожиданные ошибки пустым обработчиком.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее