我处于类__init__方法的一些微不足道的重要部分可能引发异常的情况下。在那种情况下,我想显示一条错误消息,但是继续使用实例。一个非常基本的例子:class something(object): def __init__(self): do_something_important() raise IrrelevantException() def do_something_useful(self): passtry: that_thing = something()except IrrelevantException: print("Something less important failed.")that_thing.do_something_useful()但是,最后一行无效,因为that_thing未定义。奇怪的是,我发誓我以前做过类似的事情,而且效果很好。我什至讨论如何阻止人们使用未完成的实例的方法,因为我发现即使在发生错误的情况下它也会被创建。现在我想使用它,它不起作用。嗯...?!?PS:something是我自己写的,所以我可以掌控一切。
3 回答
慕田峪9158850
TA贡献1794条经验 获得超7个赞
您既不能引发异常,也不能返回值(不会被黑客攻击)。如果这是您控制的所有代码,那么我可以建议以下模式:
class something(object):
Exception = None
def __init__(self):
...
if BadStuff:
self.Exception = IrrelevantException()
...
that_thing = something()
if that_thing.Exception:
print(that_thing.Exception)
# carry on
请注意,如果您只是在寻找一条消息,那么就不必费心创建一个Exception对象,而只需在self上设置一个错误代码/消息,然后再进行检查即可。
添加回答
举报
0/150
提交
取消