Памятка по встроенным исключениям и типам ошибок Python
Справочное руководство по распространённым типам ошибок Python. Узнайте, как отлаживать ValueError, TypeError, IndexError, KeyError и создавать исключения.
Общая логика и исключения значений
Исключения, представляющие несовпадающие операции, отсутствующие индексы или ошибки переменных.
| Метод/Функция | Синтаксис | Описание |
|---|---|---|
| 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) | Вызывается встроенной функцией 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. Изучите «если-иначе», «на время», «прервись» и продолжай.
Памятка по операциям с файлами PythonКраткий справочник по чтению и записи файлов на Python. Освойте открытые режимы, менеджеры контекста и построчное чтение.
Шпаргалка по встроенным функциям PythonСправочное руководство по встроенным функциям Python. Узнайте, как использовать print, len, range, enumerate, zip, map, filter и многое другое.
Рекомендуемые ресурсы Python
Расширьте свои знания с помощью соответствующих интерактивных руководств, шпаргалок и сравнений кода.
Python Try/Except и обработка ошибок
Предотвратите сбой ваших скриптов Python. Узнайте, как блокировать try, кроме, наконец, и как правильно создавать пользовательские исключения.
Как отсортировать список в Python
Узнайте, как сортировать список в Python с помощью метода sort() и функции sorted(). Ознакомьтесь с примерами пользовательской сортировки ключей и обратного порядка.
Python против TypeScript: динамические сценарии против типобезопасной сети
Сравните Python и TypeScript. Узнайте о системах структурных типов, метаданных декораторов, проверках компилятора, средах выполнения веб-страниц и инструментах разработчика.