我想创建自己的Python异常类,如下所示:

class MyException(BaseException):
    def __init__(self, errno, address):
        if errno == 10048:
            mess = str(address) + ' is already in use'
        else:
            mess = 'Unable to open ' + str(address)
        BaseException.__init__(mess)

但是当程序调用BaseException.__init__()时,我得到了以下回溯:
BaseException.__init__(mess)
TypeError: descriptor '__init__' requires a 'exceptions.BaseException' object but received a 'str'

我以为BaseException可以接受任何参数集。另外,我应该如何将'exceptions.BaseException'对象传递给exceptions.BaseException的构造函数?

最佳答案

您必须使用实例作为第一个参数来调用基类的方法:

BaseException.__init__(self, mess)

引用tutorial:



正如Tony Arkles和the documentation所述,



所以无论如何,您都不应该继承BaseException ...

关于python - 在Python中子类化BaseException的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/378493/

10-09 02:48