Этот вопрос проверяет знание структуры исключений Python и умение разбираться в разных типах ошибок.
Иерархия исключений в Python начинается с базового класса BaseException. От него наследуются Exception и другие исключения, такие как SystemExit и KeyboardInterrupt. Подклассы Exception включают большинство ошибок, с которыми работают программисты (ValueError, TypeError, KeyError и т.д.).
Иерархия исключений в Python:
BaseException - корневой класс для всех исключений. Обычно не используется напрямую.
Exception: базовый класс для всех ошибок, с которыми работает пользовательский код.
AttributeError: ошибка доступа к несуществующему атрибуту.
ValueError: ошибка с некорректным значением.
TypeError: ошибка с несовместимым типом.
KeyError: ошибка доступа к отсутствующему ключу словаря.
SystemExit: используется для выхода из программы.
KeyboardInterrupt: прерывание программы с клавиатуры (Ctrl+C).
Пример обработки исключений:
try:
x = int("abc") # Приведёт к ValueError
except ValueError as e:
print(f"Ошибка: {e}")Иерархия (частичная):
BaseException
│
├── SystemExit
├── KeyboardInterrupt
└── Exception
├── AttributeError
├── ValueError
├── TypeError
├── KeyError
└── ...Когда использовать:
Для обработки ошибок на основе их типов, создания собственных классов исключений.