在Python中将数据添加到异常

时间:2019-01-10 18:19:06

标签: python exception

我正在尝试创建一个包含典型字符串和其他数据的异常:

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 :(得分: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