我希望我的自定义异常能够在引发时打印自定义消息。我得到了这种方法(简化):
class BooError(Exception):
def __init__(self, *args):
super(BooError, self).__init__(*args)
self.message = 'Boo'
但结果并不能让我满意:
raise BooError('asdcasdcasd')
输出:
Traceback (most recent call last):
File "hookerror.py", line 8, in <module>
raise BooError('asdcasdcasd')
__main__.BooError: asdcasdcasd
我期待的是:
...
__main__.BooError: Boo
我知道message
已被弃用。但我不知道自定义错误消息的正确方法是什么?
答案 0 :(得分:2)
您还需要设置args
元组:
class BooError(Exception):
def __init__(self, *args):
super(BooError, self).__init__(*args)
self.args = ('Boo',)
self.message = self.args[0]
其中self.message
通常是从第一个args
项设置的。 message
类完全忽略了Exception
属性。
将参数传递给__init__
:
class BooError(Exception):
def __init__(self, *args):
super(BooError, self).__init__('Boo')