2
A a = null;
try {
  a = setA(); // set A throws exception
} catch (AException e) {
  a = null;
}

上記のコードでは、例外が発生した場合にnulla = nullになるように、catchブロックで使用する必要がありますか?a

4

2 に答える 2

3

いずれにせよ、割り当ての前に例外がスローされたので、ここではaは常にnullになると思います...

于 2013-01-21T11:25:51.960 に答える
2

値を返すメソッド(この場合はクラスのオブジェクトA)が例外をスローした場合、値を返すことはありません。

この場合、値を割り当てる行aは上記のメソッドであるため、neverは値を取得しないためnull、変数の値として残ります。

于 2013-01-21T11:28:36.260 に答える