我所处的情况是类__init__方法的一些微不足道的重要部分可能会引发异常。在这种情况下,我想显示一条错误消息,但继续使用该实例。
一个非常基本的例子:
class something(object):
def __init__(self):
do_something_important()
raise IrrelevantException()
def do_something_useful(self):
pass
try:
that_thing = something()
except IrrelevantException:
print("Something less important failed.")
that_thing.do_something_useful()
Run Code Online (Sandbox Code Playgroud)
但是,最后一行不起作用,因为that_thing未定义。奇怪的是,我可以发誓我以前做过类似的事情而且效果很好。我什至想过如何阻止人们使用这样一个未完成的实例,因为我发现即使出现错误它也会被创建。现在我想用它,但它不起作用。嗯...?!?
PS:something是我自己写的,所以我可以控制一切。