Свои исключения: raise

Иногда программа должна сама сообщить об ошибке — для этого есть raise. Разберём, зачем и как им пользоваться.

Дрон Кодер — программирование для детей и взрослых в игровой форме. Начать бесплатно

Зачем вызывать ошибку самому

Если функция получила заведомо неверные данные (отрицательный возраст, пустое имя), правильнее сразу сообщить об ошибке, а не считать дальше с мусором. raise останавливает выполнение и передаёт ошибку тому, кто вызвал функцию.

def set_age(age):
    if age < 0:
        raise ValueError('Возраст не может быть отрицательным')
    return age

Как это работает

raise создаёт исключение с понятным сообщением. Вызывающий код может поймать его через try/except и обработать, либо программа остановится с этим сообщением. Так ошибка не теряется и не превращается в тихий баг.

Свои типы ошибок

Для крупных программ создают собственные классы исключений (наследуя от Exception), чтобы называть ошибки по смыслу. Новичку это редко нужно — на старте достаточно raise со встроенными типами вроде ValueError.

Частые вопросы

Зачем самому вызывать ошибку? Чтобы честно сообщить о неверных данных, а не продолжать с ними.

Какой тип выбрать? Для неверного значения — ValueError; свои типы нужны в больших проектах.

Начать игру бесплатно
Попробуй прямо здесь
Уровень 1

Задание

Все обучающие игры «Дрон Кодер»

Одна вселенная — много модулей. Программирование, математика и логика в одной игре: пиши код, считай, решай задачи — а дрон-фермер летит по полю и собирает урожай. В каждом модуле первый уровень бесплатный, без регистрации.

📈 Математика · алгебра и графики
📖 Русский язык