Я пытаюсь создать простой обработчик исключений, который поможет мне отладить приложение.Прямо сейчас, когда у меня возникает исключение, я вынужден соединиться с отладчиком Eclipse просто для просмотра подробностей об исключении.
Чтобы избежать этого, я использовал setUncaughtExceptionHandler для обработки любого необработанного исключения и отображенияТост за исключением.К сожалению, это не работает.
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();
}
});
}
}
По сути, я создал форму с помощью одной кнопки, нажатие которой вызвало бы исключение отклонения от нуля.Однако нажатие кнопки не приводит к отображению глобального обработчика тостов.Вместо этого кнопка остается оранжевой (нажата), и ничего не происходит.
Само собой разумеется, если я закомментирую i = 5/0; Я вижу тост, который говорит, что кнопка была нажата.
Два вопроса: 1) Почему тост не отображается в теле UncaughtExceptionHandler ?Как заставить это показать?2) Есть ли альтернативный / лучший способ для глобальной обработки исключений?Полагаю, я мог бы установить aLogCat на симуляторе Android и просто записать неперехваченное исключение, однако это кажется менее удобным - мне нужно будет переключать приложения, чтобы увидеть детали исключения.
Спасибо!