In my onCreate() I set an UncaughtException handler as follows:
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());
}
});
It works OK, but I would like to get back the system's default behavior of displaying the force-close dialog to the user.
If I try to replace the KillProcess()
call with a throw throwable
the compiler complains that I need to surround it with a try/catch.
If I surround it with a 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 {
}
}
});
The compiler still complains that throw throwable
needs to be surrounded with a try/catch.
How do I re-throw that throwable? Such that except for that informative Log.e()
the system behaves exactly as before: As is I never set a default UncaughtException handler.