2013-01-21 52 views
2
A a = null; 
try { 
    a = setA(); // set A throws exception 
} catch (AException e) { 
    a = null; 
} 

在上面的代碼,我需要使用a = null在catch塊,以確保a爲null,如果發生異常?需要catch塊爲空嗎?

+6

不,它沒有任何用處。 – McDowell

+1

最好在try/catch塊中移動'A a',因爲如果引發了異常,它將不會具有有用的值。 –

回答

3

的異常被拋出在任何情況下在分配之前,我認爲,一個將永遠是空在這裏...

2

如果(在這種情況下A類的對象)返回一個值的方法拋出和異常,那麼它永遠不會返回一個值。

由於在這種情況下,爲a賦值的行是所述方法,所以從不會獲得值,因此null仍然是變量的值。