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

在上面的代码中,如果发生异常,我是否需要a = null在 catch 块中使用以确保为 null?a

4

2 回答 2

3

因为无论如何在赋值之前抛出异常,我假设 a 在这里总是为空......

于 2013-01-21T11:25:51.960 回答
2

如果返回值的方法(在这种情况下是 class 的对象A)抛出异常,则它永远不会返回值。

由于a在这种情况下分配值的行是所说的方法,因此 a 永远不会获得值,因此null保留为变量的值。

于 2013-01-21T11:28:36.260 回答