😰
キャッチされていない例外を拾う(Java)
Java製Androidプロジェクトにおいて、調査のためにキャッチできていない例外を拾いたいなんてことがこれからもないとは限らないのでメモ。
final Thread.UncaughtExceptionHandler savedUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler((t, e) -> {
// ここでログ出力
if (savedUncaughtExceptionHandler != null) {
savedUncaughtExceptionHandler.uncaughtException(t, e);
}
});
savedUncaughtExceptionHandlerとして一度退避しておくことが肝要。
参考
Discussion