Java中的Constructor Exception中的`return value’?

看看下面的代码片段:

A a = null
try {
  a = new A();
} finally {
  a.foo();  // What happens at this point?
}

假设A的构造函数抛出运行时异常.在标记的行,我总是保证得到一个NullPointerException,或者foo()将在一半构造的实例上被调用?

try块中的代码包含两个不同的操作:

>创建一个新的A实例.
>将新实例分配给名为a的变量.

如果在步骤1中抛出异常,则不执行步骤2.
因此,您将始终获得NullPointerException.

翻译自:https://stackoverflow.com/questions/2474267/return-value-from-constructor-exception-in-java

转载注明原文:Java中的Constructor Exception中的`return value’?