😰

キャッチされていない例外を拾う(Java)

2022/06/28に公開

Java製Androidプロジェクトにおいて、調査のためにキャッチできていない例外を拾いたいなんてことがこれからもないとは限らないのでメモ。

final Thread.UncaughtExceptionHandler savedUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler((t, e) -> {
    // ここでログ出力
    
    if (savedUncaughtExceptionHandler != null) {
        savedUncaughtExceptionHandler.uncaughtException(t, e);
    }
});

savedUncaughtExceptionHandlerとして一度退避しておくことが肝要。

参考
https://kokufu.blogspot.com/2013/01/android-uncaughtexceptionhandler-anr.html

Discussion