English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Python

Управление потоком Python

Функции Python

Типы данных Python

Файловые операции Python

Объекты и классы Python

Даты и время Python

Продвинутые знания Python

Руководство Python

Ошибки и встроенные исключения Python

Python (интерпретатор) вызывает исключения при возникновении ошибок. Например: деление на ноль. В этой статье вы узнаете о различных内置ых обработках исключений Python.

Во время написания программы мы часто сталкиваемся с ошибками.

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

>>> if a < 3
  Файл "<interactive input>", строка 1
    if a < 3
           ^
SyntaxError: недопустимый синтаксис

Здесь мы можем заметить, что в операторе if пропущена точка с запятой.

Ошибка также может возникнуть во время выполнения, такие ошибки называются исключениями. Например, когда мы пытаемся открыть файл, который не существует (FileNotFoundError), разделить число на ноль (ZeroDivisionError), найти модуль, который мы пытаемся импортировать (ImportError), и т.д., в таких случаях может произойти это.

Каждый раз, когда возникает такое类型的 runtime-ошибка, Python создает объект исключения. Если с ним не обращаться правильно, он выводит traceback ошибки и некоторые детальные informacje о причине ошибки.

>>> 1 / 0
Traceback (most recent call last):
 File "<string>", line 301, in runcode
 File "<interactive input>", line 1, in <module>
ZeroDivisionError: division by zero
>>> open("imaginary.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: 'imaginary.txt'

Внутренние исключения Python

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

>>> locals()['__builtins__']

Это вернет словарь встроенных исключений, функций и свойств.

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

Внутренние стандартные исключения Python
ИсключениеПричина ошибки
AssertionErrorВскрывается при неудаче assert-высказывания.
AttributeErrorВскрывается при неудачной ассигнации или обращении к свойству.
EOFErrorВскрывается при достижении конца файла в функции input().
FloatingPointErrorВскрывается при неудачном вычислении с плавающей запятой.
GeneratorExitВскрывается при вызове метода генератора в close().
ImportErrorВскрывается при отсутствии импортированного модуля.
IndexErrorВскрывается при выходе индекса последовательности за пределы диапазона.
KeyErrorВскрывается при отсутствии ключа в словаре.
KeyboardInterruptВскрывается при нажатии пользователем клавиши прерывания (Ctrl + c или Delete).
MemoryErrorВскрывается при нехватке памяти для операции.
NameErrorВскрывается при отсутствии переменной в локальном или глобальном масштабе.
NotImplementedErrorМетод, который еще не реализован.
OSErrorВиникает при возникновении системной ошибки, вызываемой системной операцией.
OverflowErrorВиникает при возникновении arithmetic ошибки, результат которой слишком велик для представления.
ReferenceErrorВиникает при попытке доступа к объектам garbage collection через слабые ссылки.
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Обработка этих вbuilt-in и пользовательских исключений в Python.