3

Throwableさまざまな投稿で概説されている理由から、キャッチすることはお勧めできません。しかし、メインを以下のように構成することは理にかなっていますか?Throwable行が削除された場合、エラーはログに記録されません。

public static void main(String[] args) {
    try {
        launchMyApplication();
    } catch (SomeCheckedException e) {
        //recover if you can, log it if you can't
    } catch (Exception e) {
        //recover if you can (unlikely), log it if you can't
    } catch (Throwable e) {
        //Don't try to recover, but log it
        logger.error("Oops: {}", e);
    }
}
4

1 に答える 1

10

この方法を実装すると、メインスレッドでスローされたスローアブルのみが処理されます。

この問題を解決する最善の方法は、Thread.setDefaultUncaughtExceptionHandler()を使用することです。

于 2012-03-30T10:22:02.697 に答える