2

次のコードは、Java コマンド ラインから実行すると正常に動作します。ただし、 exec:java を使用して実行すると、その行が表示されません...とにかくこの動作を停止しますか?

public static void main(String[] args) throws InterruptedException {
    Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {

        @Override
        public void uncaughtException(Thread t, Throwable e) {
            System.out.println("Uncaught exception: " + e.getMessage());

        }
    });

    Executors.newSingleThreadExecutor().execute(new Runnable() {

        @Override
        public void run() {
            int i = 1 / 0;

        }
    });
    Thread.sleep(1000);
    System.exit(0);
}
4

1 に答える 1

2

私の仮定は、デフォルトの UncaughtExceptionHandler が Maven 自体によってオーバーライドされているということです。

使用ガイドから:

注: Java ゴールは新しいプロセスを生成しません [...] それ以外の場合は、exec ゴールの使用を検討してください。

于 2012-05-17T16:59:42.163 に答える