В Python исключения организованы в иерархическое дерево, вершиной которого является класс BaseException
.
Основные ветви и классы:
- BaseException: Базовый класс для всех исключений. Не предназначен для прямого перехвата в большинстве случаев.
- SystemExit: Возникает при выходе из программы, например, по вызову
sys.exit()
.
- KeyboardInterrupt: Генерируется при прерывании выполнения программы пользователем (обычно Ctrl+C).
- GeneratorExit: Возникает при закрытии генератора.
- Exception: Базовый класс для большинства обрабатываемых исключений. Именно его обычно перехватывают в блоках
except
.
- StopIteration: Генерируется итератором, чтобы сигнализировать об отсутствии элементов.
- ArithmeticError: Базовый класс для ошибок в арифметических операциях.
- FloatingPointError: Ошибка операций с плавающей точкой (редко).
- OverflowError: Результат арифметической операции слишком велик.
- ZeroDivisionError: Деление на ноль.
- AssertionError: Ошибка при неудачном
assert
.
- AttributeError: Попытка доступа к несуществующему атрибуту объекта.
- EOFError: Ошибка при достижении конца файла без чтения данных.
- ImportError: Ошибка при невозможности импортировать модуль/имя.
- ModuleNotFoundError: Модуль не найден.
- LookupError: Базовый класс для ошибок при поиске по ключу/индексу.
- IndexError: Неверный индекс последовательности.
- KeyError: Неверный ключ в словаре.
- NameError: Попытка использования неопределенной переменной/имени.
- UnboundLocalError: Попытка доступа к локальной переменной в функции до присвоения ей значения.
- OSError: Ошибки, связанные с операционной системой (файлы, процессы и т.д.). Включает множество подкла