Добавление данных в исключение в Python - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь создать исключение, которое содержит типичную строку и дополнительный фрагмент данных:

class MyException(RuntimeError):
    def __init__(self,numb):
        self.numb = numb

try:
    raise MyException("My bad", 3)
except MyException as me:
    print(me)

Когда я запускаю вышеупомянутое, я получаю очевидную жалобу, что у меня есть только два аргумента в __init__, но я пропустил три. Я не знаю, как вставить типичную строку в мое исключение и добавить данные.

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Обновленный код, основанный на ответе выше, выглядит следующим образом:

class MyException(RuntimeError):
    def __init__(self,message,numb):
        super().__init__(message)
        self.numb = numb

try:
    raise MyException("My bad", 3)
except MyException as me:
    print(me)
    print(me.numb)

выводит

    My bad
    3
0 голосов
/ 10 января 2019

Вы можете передать первый аргумент (arg1) в конструктор родительского исключения и затем сделать то, что вы хотите, со вторым аргументом.

class MyException(RuntimeError):
    def __init__(self, arg1, arg2):
        super().__init__(arg1)
        print("Second argument is " + arg2)

Примечание - при использовании Python 2 вызов super() заменяется на super(MyException, self)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...