我正在尝试创建一个包含典型字符串和其他数据的异常:
class MyException(RuntimeError):
def __init__(self,numb):
self.numb = numb
try:
raise MyException("My bad", 3)
except MyException as me:
print(me)
运行上述命令时,我很明显地抱怨说,__init__
中只有两个参数,但是我通过了三个。我不知道如何将典型字符串放入异常并添加数据。
答案 0 :(得分:3)
您可以将第一个arg(arg1
)传递给父异常的构造函数,然后使用第二个参数执行所需的操作。
class MyException(RuntimeError):
def __init__(self, arg1, arg2):
super().__init__(arg1)
print("Second argument is " + arg2)
注意-如果使用Python 2,则对super()
的调用将替换为super(MyException, self)
答案 1 :(得分:0)
基于以上答案的更新代码如下:
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