Обработка исключений
Изучение обработки исключений в 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(): ловите ZeroDivisionError2. Функция
get_value(): обработайте KeyError и TypeError3. Создайте класс
NegativeValueError4. Используйте
finally в одном из методовdivide(10, 0) → "Не дели на ноль!"
get_value({}, "x") → "Ключ не найден"
set_age(-5) → "Возраст не может быть <0"💡 Подсказка:
raise NegativeValueError()
Куда двигаться дальше?
Ты освоил Обработка исключений — теперь попробуй применить эти знания в реальных проектах на профессиональном курсе Python-разработчик от Skillbox:
- Разбор сложных случаев из практики
- Менторская поддержка
- Гарантированная стажировка
Попробуйте на практике:
Результат:
Вопросы для закрепления
Вопросы для проверки усвоенного материала доступны зарегистрированным пользователям.