В Python исключения – это события, которые нарушают нормальное течение программы. Исключения могут возникать по разным причинам, таким как ошибки в коде, неправильный ввод пользователя или проблемы с внешними ресурсами. Обработка исключений позволяет программе продолжить выполнение или завершиться корректно, вместо аварийного завершения.
Основные понятия
Исключения
Исключения – это объекты, которые сигнализируют о возникновении ошибки. Когда происходит ошибка, генерируется исключение, и программа пытается его обработать. Если исключение не обрабатывается, программа завершается с сообщением об ошибке.
Основные типы исключений
Некоторые распространённые исключения в Python включают:
ZeroDivisionError
: Деление на нольTypeError
: Неправильный тип данныхValueError
: Неправильное значениеIndexError
: Индекс вне диапазонаKeyError
: Отсутствие ключа в словареFileNotFoundError
: Файл не найден
Основные конструкции для обработки исключений
В Python для обработки исключений используются конструкции try
, except
, else
и finally
.
Блок try
и except
Блок try
используется для оборачивания кода, который может вызвать исключение. Блок except
содержит код, который выполняется в случае возникновения исключения.
Синтаксис
try:
# код, который может вызвать исключение
except Ошибка:
# код для обработки исключения
Пример
try:
result = 10 / 0
except ZeroDivisionError:
print("Деление на ноль невозможно!")
# Вывод: Деление на ноль невозможно!
Блоки else
и finally
Блок else
выполняется, если в блоке try
не произошло исключение. Блок finally
выполняется в любом случае, независимо от того, произошло исключение или нет.
Синтаксис
try:
# код, который может вызвать исключение
except Ошибка:
# код для обработки исключения
else:
# код, который выполняется, если исключение не произошло
finally:
# код, который выполняется в любом случае
Пример
try:
result = 10 / 2
except ZeroDivisionError:
print("Деление на ноль невозможно!")
else:
print(f"Результат: {result}")
finally:
print("Выполнение завершено.")
# Вывод:
# Результат: 5.0
# Выполнение завершено.
Обработка нескольких исключений
Можно обрабатывать несколько типов исключений, используя кортеж в блоке except
.
Пример
try:
value = int("not a number")
except (ValueError, TypeError):
print("Произошла ошибка значения или типа данных!")
# Вывод: Произошла ошибка значения или типа данных!
Получение информации об исключении
Можно получить информацию о возникшем исключении, используя ключевое слово as
.
Пример
try:
result = 10 / 0
except ZeroDivisionError as e:
print(f"Ошибка: {e}")
# Вывод: Ошибка: division by zero