В моем 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.
Если я окружаю его с помощью 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 по умолчанию.