小编Bac*_*sau的帖子

即使 `__init__()` 引发异常也使用对象?

我所处的情况是类__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是我自己写的,所以我可以控制一切。

python python-3.x python-3.6

4
推荐指数
1
解决办法
1985
查看次数

标签 统计

python ×1

python-3.6 ×1

python-3.x ×1