我有一个简单的问题,答案可能更复杂。
我在Python中编写了一个自定义的Exception类:
class MyError(Exception):
def __init__(self, message, other_info):
Exception.__init__(self, message)
self.other_info = other_info
我想要做的是更改此异常的默认处理以包含other_info
中的信息,但为了组织起见,我想将其保留在主要的Exception消息之外。
我看过一篇关于如何完全覆盖sys.excepthook
的帖子,但我不想改变它的工作方式 - 我只是想改变处理MyError
的方式。这可能吗?
答案 0 :(得分: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