コンストラクターが例外で終了した場合、オブジェクトは通常のオブジェクトとまったく同じように作成されますか?
class A {
static A o;
A() throws Exception {
o=this;
throw new Exception();
}
void f() { System.out.println("f(): entry."); };
static public void main(String[]args ) {
try {
A o =new A();
}
catch (Exception e) {
System.out.println("Exception: " + e);
}
A.o.f(); // Is it safe to use this object?
}
}
これはコンパイルおよび実行され、このプログラムの出力は次のとおりです。
Exception: java.lang.Exception
f(): entry.