是否需要使用catch块为空?

时间:2013-01-21 11:24:51

标签: java

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

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

2 个答案:

答案 0 :(得分:3)

因为在任何情况下,在赋值之前抛出异常,我假设a在这里总是为空...

答案 1 :(得分:2)

如果返回值的方法(在本例中为类A的对象)抛出异常,则它永远不会返回值。

由于为a分配值的行在这种情况下是所述方法,因此永远不会得到一个值,因此null仍然是变量的值。