Исключения — это события, которые прерывают обычный поток программы при ошибке. Вместо падения программы их можно перехватить и обработать.
Базовая конструкция — try/except. В блоке try пишем код, который может сломаться, в except — что делать при конкретной ошибке.
else выполняется, если исключения не было; finally выполняется всегда — удобно для освобождения ресурсов.
raise позволяет самому сообщить об ошибке, а logging — записывать ошибки в файл вместо простого print.
Топ-3 ошибки: ловить «голый» except:; ставить общий Exception раньше конкретных; подавлять ошибки пустым pass.
О чём этот урок
Любая программа рано или поздно сталкивается с некорректными данными: пользователь ввёл буквы вместо числа, файл не найден, делитель оказался нулём. Без обработки такие ситуации приводят к «падению» программы с длинным traceback. Исключения позволяют перехватить ошибку, сообщить о ней понятным языком и продолжить работу.
В уроке разберём, как устроена иерархия исключений в Python, как правильно использовать try/except/else/finally, как вручную возбуждать исключения через raise и как логировать ошибки модулем logging.
Цели
Понимать, что такое исключение, traceback и иерархия BaseException → Exception.
Перехватывать конкретные исключения и обрабатывать несколько типов ошибок.
Использовать else и finally для чистой логики и гарантированной очистки.
Возбуждать исключения через raise и создавать собственные классы исключений.
Применять assert для внутренних проверок и отладки.
Логировать ошибки в консоль и файл с понятным форматом.
Следовать лучшим практикам: не ловить всё подряд, не подавлять ошибки, логировать.