МУНИЦИПАЛЬНОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ
«ЦЕНТР ДЕТСКОГО ТЕХНИЧЕСКОГО ТВОРЧЕСТВА»
Методическая разработка
«Инструкция raise в Python»
к дополнительной общеобразовательной
общеразвивающей программе
технической направленности
«Программирование на Python»
Возраст детей: 10-17 лет
Автор: Костычев Вадим Александрович
г. Заречный Пензенской области
2025 г.
Данный материал предназначен для преподавателей информатики, программирования и студентов (учащихся), изучающих язык программирования Python. Он может быть использован как на лекциях, так и при проведении практических занятий или самостоятельной работе.
Цель: формирование у обучающихся навыков явного вызова исключений в Python с помощью инструкции raise. Развитие понимания необходимости генерации собственных ошибок в целях обеспечения надежности, читаемости и поддерживаемости кода.
Задачи:
Познакомить обучающихся с инструкцией raise.
Научить использовать raise для генерации встроенных и пользовательских исключений.
Продемонстрировать практическое применение raise в проверке входных данных.
Развить навыки создания самодокументируемого и безопасного кода.
Подготовить обучающихся к разработке сложных приложений с четкой системой обработки ошибок.
Что такое raise?
Инструкция raise в Python используется для явного вызова (генерации) исключения. Это позволяет программисту сообщить о возникновении ошибочной ситуации даже в случае, когда она не возникла автоматически во время выполнения программы.
Синтаксис
raise ()
Примеры:
raise ValueError("Неверное значение")
raise Exception("Произошла общая ошибка")
Пример 1: Базовое использование raise
x = -5
if x
raise ValueError("Число не может быть отрицательным")
Результат:
ValueError: Число не может быть отрицательным
Пример 2: Использование raise внутри функции
def divide(a, b):
if b == 0:
raise ZeroDivisionError("Делитель не может быть равен нулю")
return a / b
try:
result = divide(10, 0)
except ZeroDivisionError as e:
print("Ошибка:", e)
Вывод:
Ошибка: Делитель не может быть равен нулю
Пример 3: Вызов пользовательского исключения
Создадим собственный класс исключения:
class NegativeNumberError(Exception):
pass
def check_number(x):
if x
raise NegativeNumberError("Отрицательные числа запрещены")
try:
check_number(-10)
except NegativeNumberError as e:
print("Ошибка:", e)
Вывод:
Ошибка: Отрицательные числа запрещены
Задание 1: Проверка ввода пользователя
Напишите функцию, которая принимает возраст и вызывает исключение, если возраст меньше 0 или больше 150.
def validate_age(age):
if age
raise ValueError("Возраст не может быть отрицательным")
if age 150:
raise ValueError("Возраст слишком велик")
try:
user_age = int(input("Введите ваш возраст: "))
validate_age(user_age)
print("Возраст принят")
except ValueError as e:
print("Ошибка ввода:", e)
Задание 2: Генерация пользовательского исключения
Создайте класс InvalidEmailError, который наследуется от Exception. Напишите функцию, которая проверяет формат email и вызывает это исключение при некорректном вводе.
class InvalidEmailError(Exception):
def __init__(self, email):
self.email = email
super().__init__(f"Некорректный адрес электронной почты: {email}")
def validate_email(email):
if "@" not in email or "." not in email:
raise InvalidEmailError(email)
try:
validate_email("invalid-email")
except InvalidEmailError as e:
print(e)
Упражнения для самостоятельного выполнения
Напишите функцию, которая принимает пароль и вызывает исключение, если длина пароля меньше 6 символов.
Создайте функцию проверки имени, которая вызывает исключение, если имя пустое или содержит цифры.
Реализуйте систему валидации номера телефона с использованием пользовательского исключения.
Контрольные вопросы
Что делает инструкция raise?
Какие типы исключений можно вызывать с помощью raise?
Почему важно создавать пользовательские исключения?
Можно ли вызвать исключение без указания типа?
Как влияет raise на структуру программы и обработку ошибок?