2012-11-06 15 views
18

成爲空我有以下幾點:的Java扔E在Android的

 try { 
     response.statusCode = urlConnection.getResponseCode();  
    } catch(IOException e) { 
     throw e; 
    } 

我看看調試器和e = UnknownHostException

拋出後,我有:

try { 
     NetworkResponse response = NetworkHelper.getByURL(url); 
    } catch(Exception e) { <------- IT LANDS HERE, BUT e=null 
     ExceptionHelper.announce(e);   
     throw e; 
    } 

扔所以以後我的catch塊得到異常,但它是空的。 調試器顯示e = null。

我不知道爲什麼會發生這種情況。

+0

你能顯示呼叫層次嗎? – home

+1

步進下一行後它仍爲空嗎? –

+7

嘗試e.printStackTrace()並查看它是否打印,然後嘗試e.getMessage()並查看getMessage()是否爲null。如果是(我認爲),這是因爲你拋出了一個Exception(頂層)而不是一個特定的異常。 – Carnal

回答

1

如果您立即重新拋出異常,我甚至沒有看到捕捉異常的要點。將throws IOException添加到該方法,並讓其他catch處理它。

+0

儘管你的論點通常是有效的,但在這種情況下它並沒有幫助:OP已經解釋了這一點,他還在catch塊中有其他指令,例如日誌記錄等。 – ppeterka