2012-11-06 9 views
18

Ich habe folgendes:Java throw e wird null auf Android

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

ich im Debugger sehen und e = UnknownHostException

Nach dem Wurf habe ich:

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

So nach dem Wurf Mein catch-Block erhält die Ausnahme, aber es ist null. Der Debugger zeigt e = null an.

Ich habe keine Ahnung, warum das passieren würde.

+0

Können Sie die Anrufhierarchie anzeigen? – home

+1

Ist es immer noch Null, nachdem Sie zur nächsten Zeile gegangen sind? –

+7

versuchen Sie e.printStackTrace() und sehen Sie, ob es druckt, dann versuchen Sie e.getMessage() und sehen Sie, ob getMessage() null ist. Wenn es das ist (was ich denke), liegt es daran, dass Sie eine Exception (oberste Ebene) und nicht eine bestimmte Ausnahme werfen. – Carnal

Antwort

1

Ich sehe nicht einmal den Punkt des Abfangens der Ausnahme, wenn Sie es sofort sofort wieder zu lösen. Fügen Sie dieser Methode eine throws IOException hinzu und lassen Sie die andere catch damit umgehen.

+0

Während Ihr Argument allgemeingültig ist, hilft es in diesem Fall nicht: Das OP hat das bereits erklärt, er hat auch andere Anweisungen im Catch-Block, wie Logging usw. – ppeterka

Verwandte Themen