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ハンドラーを設定したことはありません。