МУНИЦИПАЛЬНОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ
«ЦЕНТР ДЕТСКОГО ТЕХНИЧЕСКОГО ТВОРЧЕСТВА»
Методическая разработка
«Обработка исключений try-except в Python»
к дополнительной общеобразовательной
общеразвивающей программе
технической направленности
«Программирование на Python»
Возраст детей: 10-17 лет
Автор: Костычев Вадим Александрович
г. Заречный Пензенской области
2026 г.
Данный материал предназначен для преподавателей информатики, программирования и студентов (учащихся), изучающих язык программирования Python. Он может быть использован как на лекциях, так и при проведении практических занятий или самостоятельной работе.
Цель: сформировать у учащихся навык корректной обработки ошибок времени выполнения с использованием конструкции try-except, понимание её логики работы и умение проектировать надёжный код, устойчивый к исключениям.
Задачи:
1. Объяснить назначение и синтаксис конструкции try-except.
2. Продемонстрировать, что при возникновении исключения выполнение в блоке try немедленно прерывается.
3. Научить использовать несколько блоков except для обработки разных типов исключений.
4. Показать, что необработанное исключение приводит к аварийному завершению программы.
5. Развить умение предвидеть возможные ошибки и проектировать соответствующую обработку.
Почему нужна обработка исключений?
Когда программа сталкивается с ошибкой во время выполнения (например, деление на ноль, некорректный ввод), она аварийно завершается и выводит сообщение об ошибке. Это недопустимо в реальных приложениях: пользователь не должен видеть «красный трейсбэк».
Пример без обработки:
print(int("hello")) # ValueError → программа падает
print("Эта строка не выполнится")
Чтобы избежать этого, используется конструкция try-except.
Базовая структура try-except
try:
# Код, который может вызвать исключение
except ТипИсключения:
# Действия при возникновении этого исключения
Как это работает:
1. Python выполняет код внутри try.
2. Если всё хорошо — блок except игнорируется.
3. Если возникает исключение — выполнение в try немедленно останавливается, и Python ищет подходящий except.
4. Если найден — выполняется его тело, и программа продолжает работу после всего блока try-except.
Пример:
try:
print("До ошибки")
x = int("hello") # ← исключение здесь
print("После ошибки") # ← ЭТА СТРОКА НЕ ВЫПОЛНИТСЯ
except ValueError:
print("Неверный формат числа!")
print("Программа продолжает работу")
Вывод:
До ошибки
Неверный формат числа!
Программа продолжает работу
Ключевой момент: всё, что после строки с исключением в блоке try, игнорируется.
Несколько блоков except
Один блок try может иметь несколько обработчиков для разных типов исключений:
try:
# потенциально опасный код
except ValueError:
print("Ошибка значения")
except ZeroDivisionError:
print("Деление на ноль!")
except NameError:
print("Переменная не определена")
Python проверяет блоки except сверху вниз и выполняет первый подходящий.
Пример:
try:
a = 10 / 0
b = int("abc")
except ValueError:
print("ValueError")
except ZeroDivisionError:
print("ZeroDivisionError") # ← этот блок сработает
Если исключение не совпадает ни с одним except, оно распространяется дальше (вплоть до завершения программы).
Что происходит с необработанными исключениями?
Если в блоке try возникло исключение, а ни один except его не перехватил — программа аварийно завершится, как будто try-except и не было.
Пример:
try:
print(undefined_variable) # NameError
except ValueError:
print("Обработано ValueError")
# NameError не обработан → программа упадёт
Вывод:
NameError: name 'undefined_variable' is not defined
Всегда анализируйте, какие именно исключения могут возникнуть, и обрабатывайте их явно.
Практические задания
1. Напишите программу, которая запрашивает два числа и делит первое на второе. Обработайте ValueError и ZeroDivisionError.
2. Создайте функцию, которая открывает файл, читает число и возвращает его квадрат. Обработайте FileNotFoundError, ValueError, PermissionError.
Заключение
1. Конструкция try-except позволяет перехватывать исключения и предотвращать аварийное завершение программы.
2. При возникновении исключения выполнение в try прекращается мгновенно.
3. Можно обрабатывать разные типы исключений разными блоками except.
4. Необработанное исключение ведёт к остановке программы.
5. Обработка исключений — признак профессионального и надёжного кода.
Проверь себя
1. Что произойдёт, если в блоке try возникнет исключение, но нет подходящего except?
2. Будет ли выполнен код после строки с ошибкой внутри try?
3. Как обработать сразу несколько типов исключений?
4. Почему важно указывать конкретный тип исключения, а не использовать except?
5. Может ли один блок try иметь несколько блоков except?