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


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

Изучение обработки исключений в Python.

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

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

Блоки try и except

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

try:
    x = 1 / 0  # Попытка деления на ноль
except ZeroDivisionError:
    print("Ошибка: деление на ноль!")

Типы исключений

В Python есть множество встроенных типов исключений. Вот некоторые из них:

  • ZeroDivisionError — деление на ноль.
  • FileNotFoundError — файл не найден.
  • ValueError — неверное значение (например, попытка преобразовать строку в число).
  • TypeError — несовместимые типы данных.
  • IndexError — обращение к несуществующему индексу списка.

Блок else

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

try:
    x = 10 / 2
except ZeroDivisionError:
    print("Ошибка: деление на ноль!")
else:
    print("Деление выполнено успешно:", x)

Блок finally

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

try:
    file = open("example.txt", "r")
    content = file.read()
except FileNotFoundError:
    print("Файл не найден!")
finally:
    file.close()  # Файл будет закрыт в любом случае

Создание собственных исключений

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

class MyCustomError(Exception):
    pass

try:
    raise MyCustomError("Это моя ошибка!")
except MyCustomError as e:
    print("Поймано исключение:", e)

Заключение

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

Практика

🎯 Миссия 10: Стать мастером обработки ошибок
🔍 Контекст: Идеальный код — как зонтик: должен выдерживать ливень багов!

⚙️ Техзадание:
1. Функция divide_numbers(): ловите ZeroDivisionError
2. Функция get_value(): обработайте KeyError и TypeError
3. Создайте класс NegativeValueError
4. Используйте finally в одном из методов

divide(10, 0) → "Не дели на ноль!"
get_value({}, "x") → "Ключ не найден"
set_age(-5) → "Возраст не может быть <0"

💡 Подсказка: raise NegativeValueError()

Попробуйте на практике:

Результат:


                

Вопросы для закрепления

Вопросы для проверки усвоенного материала доступны зарегистрированным пользователям.

К следующему уроку