2011-10-13 16 views
5

Sto lavorando a un'applicazione java per Android e attualmente sto riscontrando un problema in cui il debugger sta entrando nel mio catch catch e in qualche modo ex è nullo? Qualcuno ha mai visto qualcosa di simile prima?catching null exception

} 
catch(Exception ex) 
{ 
    // Debugger is coming through the catch block and ex is null ???? 
} 

risposta

6

Questo suona come il codice sorgente e le classi compilate non sono sincronizzate, quindi il debugger sta entrando nel blocco sbagliato.

Provare a fare una pulizia e quindi una ricostruzione.

+0

Ho pulito il progetto e ricostruito, sembra risolto. Grazie! –

1

L'eccezione non sarà mai nullo in quel blocco. Se il puntatore dell'istruzione nel debugger punta sulla linea di cattura, è necessario eseguire un'altra riga per rendere accessibile l'eccezione. Potresti voler aggiungere una linea di codice (potenzialmente una chiamata di registro) al blocco catch e mettere il tuo punto di interruzione su quello per catturare quello che è.

+0

Sì, ho anche provato a "lanciare null;" ma viene rilevata un'istanza 'NullPointerException'. –

+0

Se stai dicendo che ho risposto alla tua domanda, fai clic sulla casella accanto alla mia risposta dicendo che ho risolto il problema. –

+0

Non ero quello che ha fatto la domanda, quindi non posso farlo. –

0

Aggiungere alcune dichiarazioni di registro e controllare. Il tuo ex potrebbe essere fuori portata.

+0

David Carpenter in questione dice "// Debugger sta arrivando attraverso il blocco catch ed ex è null ????". Quindi "ex" è nella portata. – hasanghaforian

0

Ho avuto esattamente lo stesso problema in un AsyncTask, mentre eseguivo il debug su un dispositivo reale (Galaxy Tab 2). Quindi anch'io posso confermare che questo strano problema è reale.

Per me la risposta accettata non ha aiutato.

Ma nel mio caso il problema è misteriosamente scomparso dopo aver scollegato la spina USB del dispositivo e ricollegarlo in seguito (e quindi eseguire nuovamente la mia app).