A a = null;
try {
a = setA(); // set A throws exception
} catch (AException e) {
a = null;
}
在上面的代码中,我是否需要在catch块中使用a = null
以确保在发生异常时a
为空?
答案 0 :(得分:3)
因为在任何情况下,在赋值之前抛出异常,我假设a在这里总是为空...
答案 1 :(得分:2)
如果返回值的方法(在本例中为类A
的对象)抛出异常,则它永远不会返回值。
由于为a
分配值的行在这种情况下是所述方法,因此永远不会得到一个值,因此null
仍然是变量的值。