← Назад к вопросам

Как вызвать ошибку при не прохождении проверки?

2.0 Middle🔥 111 комментариев
#Soft Skills

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

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

Основной способ сигнализировать об ошибке при неудачной проверке — использование исключений (exceptions). Это ключевой механизм обработки ошибок в Python.

Базовый подход с raise

def validate_age(age):
    if age < 0:
        raise ValueError("Возраст не может быть отрицательным")
    if age > 150:
        raise ValueError("Возраст должен быть реалистичным")
    return age

Когда условие не пройдено, используется raise для выброса исключения. Тип исключения указывает на характер ошибки.

Стандартные встроенные исключения

  • ValueError — переданное значение недопустимо
  • TypeError — неверный тип данных
  • AttributeError — атрибут не существует
  • KeyError — ключ не найден в словаре
  • IndexError — индекс выходит за границы
  • ZeroDivisionError — деление на ноль

Пользовательские исключения

class ValidationError(Exception):
    """Исключение для ошибок валидации"""
    pass

class InvalidEmailError(ValidationError):
    """Исключение для ошибок email"""
    pass

def validate_email(email):
    if "@" not in email:
        raise InvalidEmailError(f"Некорректный email: {email}")
    return email

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

try:
    age = validate_age(-5)
except ValueError as e:
    print(f"Ошибка валидации: {e}")
except Exception as e:
    print(f"Неожиданная ошибка: {e}")
finally:
    print("Проверка завершена")

Практические примеры валидации

def divide(a, b):
    if b == 0:
        raise ZeroDivisionError("Деление на ноль запрещено")
    return a / b

def process_list(items):
    if not isinstance(items, list):
        raise TypeError("Ожидается список")
    if len(items) == 0:
        raise ValueError("Список не может быть пустым")
    return items

Лучшие практики

Используй специфичные исключения — помогает ловить конкретные ошибки. Предоставляй информативные сообщения — облегчает отладку. Иерархия исключений — создавай свои, унаследованные от базовых. Не подавляй исключения — обрабатывай или перебрасывай дальше.

Как вызвать ошибку при не прохождении проверки? | PrepBro