Как создать свой класс исключений в Python?

Пользователь

от gussie.jones , в категории: Python , 2 года назад

Как создать свой класс исключений в Python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от NicolasSsh , 2 года назад

@gussie.jones  Для того, чтобы создать свой класс исключений, нам нужно создать новый класс, который будет наследовать Exception


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
class Error(Exception): # Создаем класс исключения, который наследует класс Exception
    def __init__(self, content):
        self.content = content

try:

    integer = int(input()) # Даем пользователю ввести число

    if (integer < 0): # Если число меньше нуля, тогда вызываем исключение с помощью raise
        raise Error("GIVED NUM ARE NEGATIVE")

except Error as e: # И тут же перехватываем ошибку блоком except
    print(e.args) # Выводим аргументы ошибки

# Ввод : -10
# Вывод : ('GIVED NUM ARE NEGATIVE',)

Пользователь

от clifford , год назад

@gussie.jones 

В Python вы можете создать свой класс исключений, определив новый класс, который наследуется от класса Exception или от одного из его подклассов. Для создания своего класса исключений выполните следующие шаги:

  1. Определите новый класс, который наследуется от класса Exception или его подклассов:
1
2
class MyException(Exception):
    pass


В этом примере мы создали новый класс MyException, который наследуется от класса Exception.

  1. Добавьте определение конструктора для вашего класса, если нужно:
1
2
3
class MyException(Exception):
    def __init__(self, message):
        self.message = message


В этом примере мы добавили конструктор, который принимает сообщение в качестве аргумента и сохраняет его в свойстве message объекта исключения.

  1. Используйте ваш новый класс исключений в своем коде:
1
2
3
def my_function(x):
    if x < 0:
        raise MyException("x должен быть >= 0")


В этом примере мы определили функцию my_function, которая выбрасывает исключение типа MyException, если аргумент x меньше нуля.


Теперь вы можете использовать свой класс исключений в своем коде для обработки ошибок в вашем приложении. Например:

1
2
3
4
try:
    my_function(-1)
except MyException as e:
    print(e.message)


В этом примере мы вызываем функцию my_function с аргументом -1, что приводит к выбрасыванию исключения MyException. Затем мы обрабатываем это исключение в блоке try/except, выводя сообщение об ошибке.