Документация по Python. Теоретические материалы, и практические задачи

Коды ошибок Python

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

  1. Синтаксические ошибки
  2. Логические ошибки

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

Синтаксические ошибки в Python

Такого рода ошибка возникает при неправильном использовании структуры языка. Рассмотрим пример такой ошибки:


for i in range(0,10)

print(i)

Результат:

SyntaxError: invalid syntax

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

Логические ошибки в Python

Логические ошибка возникают, если у вас нет синтаксической ошибки. То есть интерпретатор Python, сначала анализирует ваш код на предмет наличия синтаксических ошибок. типы логических ошибок бывают разными, например:

  1. Если мы пытаемся открыть файл для чтения которого не существует, то словим ошибку FileNotFoundError
  2. Попытаемся разделить на ноль, получим ZeroDivisionError
  3. Попытаемся импортировать модуль, которого не существует, получим ImportError

И это только малая часть, Python не разрешит нам уничтожить мир, разделив число на ноль=).  Каждый раз, когда Python видит необработанную ошибку, он пишет нам, что произошла ошибка по той или иной причине. Рассмотрим пример обработки ошибки.


100 / 0

Результат:

Traceback (most recent call last):

File "<string>", line 301, in runcode

File "<interactive input>", line 1, in <module>

ZeroDivisionError: division by zero

&nbsp;

open("filenot.txt")

Результат:

Traceback (most recent call last):

File "<string>", line 301, in runcode

File "<interactive input>", line 1, in <module>

FileNotFoundError: [Errno 2]

No such file or directory: 'filenot.txt'

Исключения Python

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

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

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

В одной из предыдущих статей, мы с вами уже затрагивали тему обработки ошибок, с помощью try…except…finally, подробнее о них, в статье обработка исключений

Оставьте комментарий

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