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

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

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

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

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

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

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

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

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

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

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

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

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

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

Задание