在Python中向异常添加数据
我正在尝试创建一个异常,该异常包含典型字符串和一段附加数据:在Python中向异常添加数据,python,exception,Python,Exception,我正在尝试创建一个异常,该异常包含典型字符串和一段附加数据: class MyException(RuntimeError): def __init__(self,numb): self.numb = numb try: raise MyException("My bad", 3) except MyException as me: print(me) 当我运行上面的程序时,我得到一个明显的抱怨,我在\uuuu init\uuuu中只有两个参数,但我通
class MyException(RuntimeError):
def __init__(self,numb):
self.numb = numb
try:
raise MyException("My bad", 3)
except MyException as me:
print(me)
当我运行上面的程序时,我得到一个明显的抱怨,我在
\uuuu init\uuuu
中只有两个参数,但我通过了三个。我不知道如何将典型字符串放入异常并添加数据。您可以将第一个参数(arg1
)传递到父异常的构造函数中,然后对第二个参数执行所需操作
class MyException(RuntimeError):
def __init__(self, arg1, arg2):
super().__init__(arg1)
print("Second argument is " + arg2)
注意-如果使用Python 2,对
super()
的调用将替换为super(MyException,self)
基于上述答案的更新代码如下所示:
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
他准确地展示了他想对第二个参数做什么:保存它以备将来使用。(在本例中,它可以作为
me.numb
)您实际上可以将它放在原始问题下面的分隔符下面,如:------UPDATE------PS-很高兴它能工作,我没有实际测试它,并且认为它有一个typo@AdamHughes我想知道,但在我看来,在这个问题下看到答案会让人困惑。我以为他们会停止阅读。