Check
Как вы проектируете иерархию пользовательских исключений в библиотеке? Зачем нужен базовый класс исключений и почему нежелательно бросать голый `Exception`?

Иерархия исключений

Ответ 1 / 1

Обычно делают базовый класс исключений библиотеки, наследующийся от `Exception`: ```python class MyLibError(Exception): pass class ConfigError(MyLibError): pass class NetworkError(MyLibError): pass ``` Пользователь может перехватить либо конкретную ошибку, либо всё, что относится к библиотеке: `except MyLibError:`. Бросать голый `Exception` плохо, потому что: - сложно отличить ошибки библиотеки от системных; - пользователь может слишком широко перехватывать исключения и скрывать баги. Иерархия ошибок — часть публичного контракта API.