В моем onCreate ()я установил обработчик UncaughtException следующим образом:
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());
}
});
Это работает нормально, но я хотел бы вернуть поведение системы по умолчанию, отображающее диалог принудительного -закрытия для пользователя.
Если я попытаюсь заменить вызов KillProcess()
вызовом throw throwable
, компилятор жалуется, что мне нужно окружить его блоком 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 {
}
}
});
Компилятор по-прежнему жалуется, что throw throwable
нужно окружить блоком try/catch.
Как мне повторно -бросить этот бросок? Так что за исключением этого информативного Log.e()
система ведет себя точно так же, как и раньше :Как есть, я никогда не устанавливал обработчик UncaughtException по умолчанию.