Sto cercando di creare un gestore di eccezioni semplice che mi consenta di eseguire il debug dell'applicazione. In questo momento, quando ho un'eccezione, sono costretto a connettermi con il debugger di Eclipse solo per vedere i dettagli delle eccezioni.Utilizzo della gestione globale delle eccezioni con "setUncaughtExceptionHandler" e "Toast"
Per evitare che io abbia utilizzato setUncaughtExceptionHandler per gestire qualsiasi eccezione non gestita e visualizzare un Toast sull'eccezione. Sfortunatamente, questo non funziona.
public class TicTacToe extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Thread.currentThread().setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
Toast.makeText(TicTacToe.this, "TOAST", Toast.LENGTH_LONG).show();
}
});
setContentView(R.layout.main);
Button continueButton = (Button) findViewById(R.id.cell01);
continueButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int i = 5;
i = 5/0;
Toast.makeText(TicTacToe.this, "BUTTON", Toast.LENGTH_LONG).show();
}
});
}
}
Essenzialmente fatto un modulo con un singolo pulsante, premendo sul quale, sarebbe un'eccezione devision per zero. Tuttavia, la pressione del pulsante non provoca la visualizzazione del gestore globale del pane tostato. Invece, il pulsante rimane arancione (premuto) e non accade nulla.
Inutile dire che se commento fuori i = 5/0; Vedo il brindisi che dice che è stato premuto un pulsante.
Due domande: 1) Perché il brindisi non viene visualizzato nel corpo UncaughtExceptionHandler? Come si fa a mostrare? 2) Esiste un modo alternativo/migliore per la gestione globale delle eccezioni? Immagino che potrei installare aLogCat sul simulatore Android e semplicemente registrare l'eccezione non rilevata, a quanto pare, tuttavia, meno comoda - Avrò bisogno di passare le applicazioni solo per vedere i dettagli delle eccezioni.
Grazie!
Se si inserisce Log.e ("TicTacToe", "Eccezione non gestita", ex) al posto di Toast e visualizza il logcat in modo simile a eclissi o DDMS, registra l'errore? –
Non hai bisogno di debugger, solo la vista Logcat. E avrai bisogno di Eclipse per risolvere comunque i problemi. – yanchenko
Woah @ Alex. Ero sicuro di dover essere connesso per vedere aLogCat. Molte grazie! – VitalyB