0

小さな例:

 public class App {   
     public static void main(String[] args) {
         throw new RuntimeException("Test exception");
     }
 }

期待どおりに以下を出力します。

Exception in thread "main" java.lang.RuntimeException: Test exception
    at App.main(App.java:5)

このプログラムを変更しましょう:

public class App {    
    public static void main(String[] args) {
        Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
            @Override
            public void uncaughtException(Thread t, Throwable e) {
                if (e instanceof RuntimeException) throw (RuntimeException)e;
            }
        });
        throw new RuntimeException("Test exception");
    }
}

版画:

Exception: java.lang.RuntimeException thrown from the UncaughtExceptionHandler in thread "main"

質問:

メッセージが発生した場所に関する情報が含まれておらず、スタック トレース、メッセージがないのはなぜですか?

私にとっては、例外メッセージは奇妙に見えます。

4

1 に答える 1