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

Справочное руководство по распространённым типам ошибок Python. Узнайте, как отлаживать ValueError, TypeError, IndexError, KeyError и создавать исключения.

Общая логика и исключения значений

Исключения, представляющие несовпадающие операции, отсутствующие индексы или ошибки переменных.

Метод/ФункцияСинтаксисОписание
ValueErrorint("abc")Возникает, когда функция получает аргумент правильного типа, но неподходящего значения.
TypeError"1" + 2Возникает, когда операция или функция применяется к объекту неподходящего типа.
IndexErrormy_list[10]Возникает, когда индекс последовательности выходит за пределы допустимого диапазона.
KeyErrormy_dict["missing"]Возникает, когда ключ словаря не найден.
AttributeErrormy_str.append("x")Возникает в случае сбоя ссылки или назначения атрибута (например, вызов методов списка для строки).

Исключения времени выполнения и ресурсов

Проблемы, связанные с внешними файловыми системами, сбоями вычислений или синтаксическими ошибками выполнения.

Метод/ФункцияСинтаксисОписание
FileNotFoundErroropen("missing.txt")Возникает, когда файл или каталог запрошен, но не существует.
ZeroDivisionError1 / 0Возникает, когда второй аргумент операции деления или по модулю равен нулю.
SyntaxErrorwhile True print("hi")Возникает, когда синтаксический анализатор обнаруживает синтаксическую ошибку.
NameErrorprint(undefined_variable)Возникает, когда локальное или глобальное имя не найдено.
StopIterationnext(exhausted_iterator)Вызывается встроенной функцией next(), чтобы сигнализировать о том, что у итератора нет дополнительных элементов.

Интерактивный демонстрационный сценарий

# ValueError
int("abc")

# TypeError
"1" + 2

# IndexError
my_list[10]

# KeyError
my_dict["missing"]

# AttributeError
my_str.append("x")

# FileNotFoundError
open("missing.txt")

# ZeroDivisionError
1 / 0

# SyntaxError
while True print("hi")

# NameError
print(undefined_variable)

# StopIteration
next(exhausted_iterator)

Часто задаваемые вопросы

Как мне перехватить несколько исключений в Python?

Вы можете указать их в виде кортежа в одном блоке исключений, например, исключая (ValueError, TypeError) как e:.

Когда мне следует создавать исключения вручную?

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

Связанные темы

Рекомендуемые ресурсы Python

Расширьте свои знания с помощью соответствующих интерактивных руководств, шпаргалок и сравнений кода.