Назад к вопросам
Junior
69
questionbank
Какие классы исключений существуют в Python?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Python существует иерархия классов исключений, где большинство исключений являются производными от класса Exception. Некоторые ключевые классы включают:
BaseException: Базовый класс для всех исключений. Не рекомендуется обрабатывать напрямую, за исключением очень редких случаев.Exception: Базовый класс для всех несистемных исключений, которые обычно перехватывают в программах.ArithmeticError: Базовый класс для исключений, связанных с арифметическими операциями. Включает:FloatingPointError: Исключение при сбое операции с плавающей точкой.OverflowError: Исключение при превышении допустимого диапазона числа.ZeroDivisionError: Исключение при делении на ноль.
AssertionError: Исключение при сбое оператораassert.AttributeError: Исключение при попытке получить атрибут или вызвать метод, который не существует.# Пример AttributeError class MyClass: pass obj = MyClass() # print(obj.non_existent_attribute) # Вызовет AttributeErrorEOFError: Исключение при достижении конца файла без чтения данных.ImportError: Базовый класс для исключений, связанных с импортом модулей. Включает:ModuleNotFoundError: Исключение при невозможности найти модуль.
IndexError: Исключение при выходе индекса за пределы последовательности.# Пример IndexError my_list = [1, 2, 3] # print(my_list[3]) # Вызовет IndexErrorKeyError: Исключение при попытке доступа к несуществующему ключу в словаре.# Пример KeyError my_dict = {"a": 1, "b": 2} # print(my_dict["c"]) # Вызовет KeyErrorKeyboardInterrupt: Исключение при прерывании программы пользователем (обычно Ctrl+C).MemoryError: Исключение при исчерпании доступной памяти.NameError: Исключение при попытке использования неопределенной переменной.# Пример NameError # print(undefined_variable) # Вызовет NameErrorOSError: Базовый класс для исключений, связанных с операционной системой. Включает:FileNotFoundError: Исключение при попытке доступа к несуществующему файлу или директории.IsADirectoryError: Исключение при попытке выполнения файловой операции над директорией.NotADirectoryError: Исключение при попытке выполнения файловой операции над не-директорией.PermissionError: Исключение при отсутствии прав доступа.
RuntimeError: Исключение, возникающее, когда класс не подпадает ни под одну из других категорий исключений.SyntaxError: Исключение при обнаружении синтаксической ошибки в коде.SystemError: Исключение при обнаружении внутренней ошибки интерпретатора.TypeError: Исключение при применении операции или функции к объекту неподходящего типа.# Пример TypeError # print(1 + "2") # Вызовет TypeErrorValueError: Исключение при передаче функции аргумента правильного типа, но неподходящего значения.# Пример ValueError # int("abc") # Вызовет ValueErrorZeroDivisionError: (уже упоминался вArithmeticError)
Некоторые исключения являются подклассами других, формируя иерархию. Например, ModuleNotFoundError является подклассом ImportError.
Часть иерархии:
BaseException
├── Exception
│ ├── ArithmeticError
│ │ ├── FloatingPointError
│ │ ├── OverflowError
│ │ └── ZeroDivisionError
│ ├── AssertionError
│ ├── AttributeError
│ ├── EOFError
│ ├── ImportError
│ │ └── ModuleNotFoundError
│ ├── IndexError
│ ├── KeyError
│ ├── MemoryError
│ ├── NameError
│ ├── OSError
│ │ ├── FileNotFoundError
│ │ ├── IsADirectoryError
│ │ ├── NotADirectoryError
│ │ └── PermissionError
│ ├── RuntimeError
│ ├── SyntaxError
│ ├── TypeError
│ └── ValueError
└── KeyboardInterrupt
Это не полный список, но включает наиболее часто встречающиеся исключения.
При обработке исключений рекомендуется перехватывать более конкретные исключения перед более общими, чтобы обеспечить более точную обработку ошибок.