Россия и Беларусь начали и продолжают войну против народа Украины!

Исключения в Python

  Акод  | 

  Обновл. 9 Май 2023  | 

 257

Исключение — это неожиданное событие, которое происходит во время выполнения программы. Например:

Эта строка вызовет исключение, поскольку делить на 0 нельзя.

Логические ошибки (исключения) в Python

Ошибки, возникающие во время выполнения программы (после прохождения синтаксической проверки), называются исключениями или логическими ошибками.

Например, они возникают, когда мы:

   пытаемся открыть несуществующий файл — генерируется исключение FileNotFoundError;

   пытаемся делить на ноль — генерируется исключение ZeroDivisionError;

   пытаемся импортировать несуществующий модуль — генерируется исключение ImportError.

При возникновении подобных ошибок во время выполнения Python создает объект исключения.

Если ошибка не была обработана должным образом, выводится информация об этой ошибки вместе с некоторыми подробностями о том, почему она произошла.

Давайте посмотрим, как Python обрабатывает подобные ошибки:

Результат:

Traceback (most recent call last):
File "<string>", line 1, in <module>
ZeroDivisionError: division by zero

Здесь, при попытке выполнения операции 7 / 0, программа выбрасывает исключение ZeroDivisionError.

Встроенные исключения в Python


Некорректные операции могут вызывать исключения. В Python существует множество встроенных исключений, которые вызываются при возникновении соответствующих ошибок.

Мы можем просмотреть все встроенные исключения с помощью функции local() следующим образом:

Здесь locals()['__builtins__'] вернет модуль встроенных исключений, функций и атрибутов, а dir  позволяет перечислить эти атрибуты в виде строк.

Ниже перечислены некоторые из наиболее распространенных встроенных исключений в Python, а также ошибки, которые их вызывают:

Исключение Причина
AssertionError Возникает, когда оператор assert не срабатывает.
AttributeError Возникает при ошибке присваивания атрибута или ссылки.
EOFError Возникает, когда функция input() достигает состояния конца файла.
FloatingPointError Возникает при сбое операции с данными типа с плавающей точкой.
ImportError Возникает, если импортируемый модуль не найден.
IndexError Возникает, когда указанный индекс в последовательности выходит за пределы допустимого диапазона.
KeyError Возникает, когда ключ не найден в словаре.
KeyboardInterrupt Возникает, когда пользователь нажимает клавишу прерывания (Ctrl+C или Delete).
MemoryError Возникает, когда заканчивается память для выполнения операции.
NameError Возникает, когда переменная не найдена в локальной или глобальной области видимости.
NotImplementedError Возникает при использовании абстрактных методов.
OSError Возникает, когда работа системы вызывает ошибку, связанную с системой.
OverflowError Возникает, когда результат арифметической операции слишком велик для представления.
RuntimeError Возникает, когда ошибка не подпадает ни под одну другую категорию.
StopIteration Вызывается функцией next(), чтобы указать, что нет следующего элемента, который должен быть возвращен итератором.
SyntaxError Вызывается синтаксическим парсером при обнаружении синтаксической ошибки.
IndentationError Возникает при неправильном отступе.
TabError Возникает, когда отступ состоит из непоследовательных табуляций и пробелов.
SystemError Возникает, когда интерпретатор обнаруживает внутреннюю ошибку.
SystemExit Вызывается функцией sys.exit().
TypeError Возникает, когда функция или операция применяется к объекту неправильного типа.
UnboundLocalError Возникает, когда в функции или методе делается ссылка на локальную переменную, но значение не было привязано к этой переменной.
UnicodeError Возникает при возникновении ошибки кодирования или декодирования, связанной с Unicode.
UnicodeEncodeError Возникает, когда во время кодирования происходит ошибка, связанная с Unicode.
UnicodeDecodeError Возникает, когда во время декодирования происходит ошибка, связанная с Unicode.
UnicodeTranslateError Возникает при ошибке, связанной с Unicode, во время перевода.
ValueError Возникает, когда функция получает аргумент правильного типа, но некорректное значение (для этого типа).
ZeroDivisionError Возникает, когда второй операнд операции деления или модуляции равен нулю.

При необходимости мы также можем определить собственные исключения. Для работы с исключениями в Python используются операторы try, except и finally.

Ошибки и исключения в Python

Ошибками обычно являются ошибки компиляции, синтаксические ошибки, ошибки в логической части кода, несовместимость библиотек, бесконечная рекурсия и т.д.

Исключения могут быть пойманы и обработаны программой.


Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (1 оценок, среднее: 5,00 из 5)
Загрузка...

Добавить комментарий

Ваш E-mail не будет опубликован. Обязательные поля помечены *