自定义Python异常:不同的名称但相同的任务

时间:2013-08-19 11:43:37

标签: python exception-handling

我需要在某个时间显示自定义消息,并在其他时间显示应用程序抛出的异常消息。所以,我打算实施类似的东西,但我不知道该怎么做。

class A(Exception):
    """Base class for exceptions in this module."""
    pass


class B(A):
    """Expect a custom message here."""
    def __init__(self, err_msg):
        super(B, self).__init__(err_msg)
        self.err_msg = err_msg

    def __str__(self):
        return self.err_msg


class C(A):
    """Expect a custom message here."""
    def __init__(self, err_msg):
        super(C, self).__init__(err_msg)
        self.err_msg = err_msg

    def __str__(self):
        return self.err_msg


class D(A):
    """Expect the default behavior here."""
    pass

我想知道是否可以消除重复 init str 部分并将它们合并到A本身?

1 个答案:

答案 0 :(得分:0)

class MyException(Exception):
    """Expect a custom message here."""
    def __init__(self, err_msg):
        super(MyException, self).__init__(err_msg)
        self.err_msg = err_msg

    def __str__(self):
        return self.err_msg


def CustomExceptionA(MyException):
    pass

def CustomExceptionB(MyException):
    pass