В моем 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
нужно окружить попыткой / уловом.
Как мне перебросить этот метательный предмет? Таким образом, за исключением этого информативного Log.e()
система ведет себя точно так же, как и раньше: как и прежде, я никогда не устанавливал обработчик UncaughtException по умолчанию.