W moim onCreate() I ustawić obsługi UncaughtException następująco:Jak ponownie wyjątek
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable throwable) {
Log.e(getMethodName(2), "uncaughtException", throwable);
android.os.Process.killProcess(android.os.Process.myPid());
}
});
To działa OK, ale chciałbym wrócić domyślne zachowanie systemu z wyświetlania Test siły zamknij okno dialogowe dla użytkownika.
Jeśli spróbuję zastąpić wywołanie KillProcess()
za pomocą throw throwable
, kompilator uskarża się, że muszę otoczyć go metodą prób/catch.
Gdybym otaczają go z try/catch:
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable throwable) {
try {
Log.e(getMethodName(2), "uncaughtException", throwable);
throw throwable;
}
catch (Exception e) {
}
finally {
}
}
});
Kompilator wciąż narzeka, że throw throwable
musi być otoczony try/catch.
Jak mogę ponownie rzucić to, co się da? Taki, że z wyjątkiem tego informacyjnego systemu, system zachowuje się dokładnie tak jak wcześniej: Jak nigdy nie ustawiam domyślnej obsługi UncaughtException.
Przepraszam, ale to skutkuje niekończącym się strumieniem Niewykończonych Wyjątków i w ogóle brakiem dialogu wymuszającego zamknięcie. Nie tego szukam. –
Zaktualizowałem odpowiedź. – Jeshurun
Działa świetnie! Akceptowanie +1. –