0

我有一个简单的问题,答案可能更复杂。

我在 Python 中编写了一个自定义异常类:

class MyError(Exception):
  def __init__(self, message, other_info):
    Exception.__init__(self, message)
    self.other_info = other_info

我想做的是更改此异常的默认处理以将信息包含在 中other_info,但为了组织的缘故,我想将其保留在主要异常消息之外。

我看过一篇关于如何sys.excepthook完全覆盖的帖子,但我不想改变它的工作方式——我只想改变MyError处理方式。这可能吗?

4

1 回答 1

2

我试图通过更改默认处理来理解您的意思,并猜测您希望显示异常消息self.other_info而不是self.message. 如果是这种情况,请修改类以添加__str__函数:

class MyError(Exception):
    def __init__(self, msg, other_info):
        Exception.__init__(self, msg)
        self.other_info = other_info
    def __str__(self):
        return '<MyError: {}>'.format(self.other_info)
        # Or, simply:
        # return self.other_info
于 2013-09-10T15:01:29.077 回答