从用户定义的Exception中删除全名

时间:2017-03-17 12:59:03

标签: python exception

我定义了自己的函数python异常:

class MyError(Exception):
def __init__(self, value):
    self.value = value
def __str__(self):
    return repr(self.value)

当我举起它时,我得到:

Traceback (most recent call last):

--snip--

    raise MyError("Test")
src.exceptions.MyError: 'Test'

我如何删除" src.exceptions"在Exception名称之前,同时保留实际的Exception名称,如内置的Exceptions?

1 个答案:

答案 0 :(得分:0)

在python中定义自定义异常的最佳方法是从Exception派生一个类,然后使用此类作为Base类来定义用户定义的异常。

class MyErrorBase(Exception):
    pass


class MyError(MyErrorBase):

    def __init__(self, value):
        self.value = value

    def __str__(self):
        return repr(self.value)

try:
    raise MyError("Test")
except MyError, exc:
    print exc

这将输出为:

Test