Исключения в Python

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

Что такое исключение?

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

Обработка исключений

Для обработки исключений в Python используется конструкция try...except. Код, который может вызвать исключение, помещается в блок try, а обработка исключения — в блок except:

try:
    result = 10 / 0
except ZeroDivisionError:
    print("Ошибка: Деление на ноль!")

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

Множественные исключения

Вы можете обрабатывать несколько типов исключений, указав их через запятую:

try:
    value = int(input("Введите число: "))
except (ValueError, ZeroDivisionError) as e:
    print(f"Ошибка: {e}")

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

Блок finally

Блок finally выполняется всегда, независимо от того, произошло исключение или нет. Это полезно для освобождения ресурсов:

try:
    file = open("file.txt", "r")
    # Чтение файла
except FileNotFoundError:
    print("Файл не найден.")
finally:
    file.close()  # Закрытие файла, если он был открыт
Создание собственных исключений

Вы можете создавать собственные исключения, наследуя класс Exception:

class MyCustomError(Exception):
    pass

try:
    raise MyCustomError("Это пользовательская ошибка!")
except MyCustomError as e:
    print(e)
Заключение

Обработка исключений — важный аспект программирования на Python. Она позволяет вашему коду оставаться устойчивым к ошибкам и обеспечивает более удобный интерфейс для пользователей. Понимание работы с исключениями поможет вам создавать более надежные и безопасные приложения.