СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Методическая разработка «Исключения в Python»

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Методическая разработка «Исключения в Python»»

МУНИЦИПАЛЬНОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ

«ЦЕНТР ДЕТСКОГО ТЕХНИЧЕСКОГО ТВОРЧЕСТВА»













Методическая разработка

«Исключения в Python»

к дополнительной общеобразовательной

общеразвивающей программе

технической направленности

«Программирование на Python»



Возраст детей: 10-17 лет









Автор: Костычев Вадим Александрович











г. Заречный Пензенской области

2026 г.

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


Цель: сформировать у учащихся понимание механизма исключений как средства обработки ошибок во время выполнения программы, а также научить использовать конструкции try-except, raise и анализировать иерархию исключений.


Задачи:

1. Объяснить разницу между синтаксическими, логическими ошибками и исключениями.

2. Показать, что исключение — это объект, принадлежащий к определённой иерархии классов.

3. Научить обрабатывать исключения с помощью try-except.

4. Продемонстрировать, как использовать наследование при обработке групп исключений.

5. Научить генерировать собственные исключения с помощью raise.



Типы ошибок в программировании


В процессе написания кода вы неизбежно сталкиваетесь с ошибками. Их можно разделить на три категории:


  1. Синтаксические ошибки

Возникают, когда нарушены правила записи кода на языке Python:

- пропущена скобка,

- неправильный отступ,

- отсутствует двоеточие после if, for, def и т.д.


Пример:


print("Hello"

# SyntaxError: '(' was never closed


Особенность: программа не запускается вообще. Python сразу сообщает об ошибке.


  1. Логические ошибки

Код выполняется без остановки, но даёт неправильный результат из-за неверной логики.


Пример:


rubles = 1800

rate = 60.35

dollars = rubles rate # должно быть деление!


Особенность: Python не сообщает об ошибке — её нужно находить самому (через тестирование или отладку).


  1. Исключения (exceptions)

Программа запускается, но аварийно завершается во время выполнения из-за непредвиденной ситуации.


Пример:


print(10 / 0) # ZeroDivisionError


Что такое исключение?


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


Все исключения образуют иерархию наследования, корнем которой является класс BaseException.


BaseException

├── SystemExit

├── KeyboardInterrupt

├── GeneratorExit

└── Exception

├── ArithmeticError

│ ├── ZeroDivisionError

│ ├── OverflowError

│ └── FloatingPointError

├── LookupError

│ ├── IndexError

│ └── KeyError

├── NameError

├── TypeError

├── ValueError

└── ... и многие другие


Важно: почти все исключения, с которыми вы сталкиваетесь в повседневном программировании, наследуются от класса Exception.


Проверим:


print(issubclass(ZeroDivisionError, Exception)) # True

print(issubclass(KeyError, Exception)) # True



Как обрабатывать исключения?


Когда возникает исключение, программа останавливается. Чтобы этого избежать, используется конструкция try-except.


Синтаксис:


try:

# код, который может вызвать исключение

except ИмяИсключения:

# действия при возникновении исключения


Пример:


try:

x = int(input("Введите число: "))

print(10 / x)

except ZeroDivisionError:

print("Ошибка: деление на ноль!")


Если пользователь введёт 0, программа не упадёт, а выведет сообщение и продолжит работу.


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


Можно обрабатывать несколько типов исключений:


try:

value = int(input("Число: "))

result = 100 / value

except ValueError:

print("Это не число!")

except ZeroDivisionError:

print("Делить на ноль нельзя!")


Или объединить их:


except (ValueError, ZeroDivisionError):

print("Некорректный ввод!")


Использование наследования при обработке


Благодаря иерархии исключений, можно перехватывать целую группу ошибок одним блоком.


Пример:


try:

# ... деление, возведение в степень и т.д.

except ArithmeticError as e:

print(f"Арифметическая ошибка: {e}")


Этот блок обработает:

- ZeroDivisionError

- OverflowError

- FloatingPointError


Чтобы узнать конкретный тип исключения, используйте переменную через as:


except ArithmeticError as ex:

print(f"Ошибка: {ex} (тип: {type(ex).__name__})")


Генерация исключений: оператор raise


Иногда нужно самому вызвать исключение, чтобы предотвратить некорректное поведение программы.


Пример:


age = int(input("Ваш возраст: "))

if age

raise ValueError("Возраст не может быть отрицательным!")


Вы можете вызывать как встроенные исключения (ValueError, TypeError), так и создавать свои (об этом — в следующих уроках).


Почему именно сейчас?


Исключения — это объекты, и они организованы в иерархию наследования. Без понимания классов и наследования невозможно по-настоящему освоить эту тему. Теперь, когда вы знаете, что:

- ZeroDivisionError — это класс,

- он наследуется от ArithmeticError,

- а тот — от Exception,


И вы готовы работать с исключениями осознанно, а не просто «копировать шаблоны».


Заключение


- Синтаксические ошибки — не позволяют запустить программу;

- Логические ошибки — дают неправильный результат, но не останавливают выполнение;

- Исключения — ошибки времени выполнения, которые можно перехватить и обработать;

- Все исключения — это классы, образующие иерархию наследования;

- Основной инструмент обработки — конструкция try-except;

- Можно обрабатывать как конкретные, так и группы исключений через общего предка;

- Оператор raise позволяет самостоятельно генерировать исключения.


Исключения — это не «враг», а механизм управления ошибками. Они позволяют вашей программе реагировать на непредвиденные ситуации грациозно, а не просто падать.


Освоив исключения, вы переходите от написания «работающего кода» к созданию надёжных, устойчивых и профессиональных программ, способных корректно вести себя даже в нештатных ситуациях.


Проверь себя


1. Чем исключение отличается от синтаксической ошибки?

2. Почему программа с логической ошибкой не выдаёт сообщения об ошибке?

3. Какой класс является корнем иерархии всех исключений в Python?

4. Почему почти все «обычные» исключения наследуются от Exception, а не от BaseException?

5. Что произойдёт, если не обработать возникшее исключение?

6. Можно ли в одном блоке except перехватить несколько типов исключений? Как?

7. Зачем использовать as в конструкции except ValueError as e?

8. Когда уместно использовать оператор raise? Приведи пример.