Исключения в Python — это механизм, который помогает программе не “падать” молча, а корректно реагировать на ошибки. Для разработчика это основа надежного кода, особенно в API, парсинге, автоматизации, Data Science и backend-разработке.
Что такое исключение
Исключение возникает, когда интерпретатор сталкивается с ошибкой во время выполнения программы. Например: деление на ноль, отсутствие файла, неверный тип данных.
Примеры популярных ошибок:
ZeroDivisionError— деление на нольFileNotFoundError— файл не найденValueError— некорректное значениеTypeError— операция с неподходящим типомKeyError— отсутствует ключ в словаре
Базовая конструкция try/except
Она позволяет перехватить ошибку и обработать её без остановки всей программы.
try:
result = 10 / 0
except ZeroDivisionError:
print("Деление на ноль недопустимо")
Обработка нескольких исключений
Если код может упасть по разным причинам, ошибки лучше разделять.
try:
number = int(input())
print(100 / number)
except ValueError:
print("Введите число")
except ZeroDivisionError:
print("Нельзя делить на ноль")
Так код становится понятнее и проще в поддержке.
else и finally
else выполняется, если ошибки не было.
finally — всегда, даже если исключение возникло.
try:
file = open("data.txt")
except FileNotFoundError:
print("Файл не найден")
else:
print("Файл открыт успешно")
finally:
print("Завершение операции")
Зачем использовать raise
raise позволяет выбросить исключение вручную, если данные не соответствуют бизнес-логике.
age = -5
if age < 0:
raise ValueError("Возраст не может быть отрицательным")
Это важно для валидации входных данных и защиты от некорректных сценариев.
Как писать правильно ✅
- Не используйте пустой
except:без необходимости - Перехватывайте конкретные типы ошибок
- Не скрывайте исключения, если они важны для диагностики
- Добавляйте понятные сообщения об ошибках
- Логируйте ошибки в production-коде
Плохая практика 🚫
try:
do_something()
except:
pass
Такой код “проглатывает” любые ошибки и усложняет отладку.
Хорошая практика
try:
do_something()
except Exception as e:
print(f"Произошла ошибка: {e}")
Итог
Обработка исключений в Python нужна не для маскировки ошибок, а для управляемого поведения приложения. Грамотный try/except повышает стабильность системы, упрощает отладку и делает код безопаснее для пользователя и разработчика. 💡
📌 В конце стоит заглянуть в подборку каналов про IT — там много полезного по Python, backend, DevOps и разработке.