@gage Для того, чтобы создать собственное исключение - вы можете воспользоваться try, except и raise
1 2 3 4 5 6 7 8 9 10 11 12 13 |
def iter(x): ''' Функция, которая принимает на вход число, а возвращает это же число, но на 1 больше ''' try: # Создаем блоки try/except return x + 1 except TypeError: # В случае TypeError'а мы обозначим ошибку в консоль raise TypeError("Function expected to receive int-value") print(iter(5)) # Вывод : 6 print(iter("dropcode.ru")) # Вывод : (Подробности ошибки) + TypeError: Function expected to receive int-value |
@gage
Чтобы создать собственное исключение в Python, необходимо создать класс, который будет наследоваться от класса Exception или его производных классов (например, ValueError, TypeError и т.д.). Внутри класса исключения можно определить свои параметры и методы.
Например, чтобы создать исключение InvalidInput, можно написать следующий код:
1 2 3 4 |
class InvalidInput(Exception): def __init__(self, message="Invalid input."): self.message = message super().__init__(self.message) |
Здесь мы создали класс InvalidInput, который наследуется от класса Exception. В конструкторе класса мы определили свойство message, которое содержит сообщение об ошибке, по умолчанию устанавливаемое как "Invalid input.".
Затем мы вызываем конструктор родительского класса с помощью метода super(), передавая ему сообщение об ошибке в качестве аргумента.
Теперь этим исключением можно пользоваться в своих программах:
1 2 3 4 5 6 |
try: x = int(input("Введите число: ")) if x < 0: raise InvalidInput("Число должно быть положительным.") except InvalidInput as e: print(e.message) |
Здесь мы создали конструкцию try-except, в которой пытаемся преобразовать введенную пользователем строку в число. Если это число отрицательное, мы вызываем исключение InvalidInput, передавая ему соответствующее сообщение. В блоке except мы перехватываем это исключение и выводим сообщение об ошибке, которое мы определили при создании исключения.