13

コマンドjava ExceptionTestを使用してJavaプログラムを実行すると、例外が省略されることがあり、次のようになります

Exception in thread "main" java.lang.NoClassDefFoundError: aa/bb/DD
        at SOMEWHERE(unknown source)
Caused by: java.lang.ClassNotFoundException: aaa.bbb.CC
        at SOMEWHER(unknown source)
        ... 13 more

この場合、さらに 13 の例外を確認したいと思います。すべての例外ログを表示するオプションはありますか?

4

2 に答える 2

27

あなたはすでにそれらを見ています、それはJava(およびデフォルトでLogback)がデフォルトで例外を出力するばかげた方法です。このスタック トレース:

Exception in thread "main" java.lang.NoClassDefFoundError: aa/bb/DD
        at SOMEWHERE(unknown source)
Caused by: java.lang.ClassNotFoundException: aaa.bbb.CC
        at SOMEWHER(unknown source)
        ... 13 more

実際には、次のプログラム フローを意味します (下から上へ)。

Caused by: java.lang.ClassNotFoundException: aaa.bbb.CC
        at SOMEWHER(unknown source)
Exception in thread "main" java.lang.NoClassDefFoundError: aa/bb/DD
        at SOMEWHERE(unknown source)

( Logback の) は、これらの例外が以前に出力されたことを意味するだけです... 13 moreN common frames omittedLogback では、スタック トラックを再構築して重複を回避し、スタック行を常に正しい順序で出力できます。ブログを参照してください。

于 2012-09-01T09:05:21.520 に答える
4

13 以上の例外はありません。ここで説明されているように、以前のコール スタックと同一のコール スタックには、さらに 13 行あります ()

于 2012-09-01T09:06:56.180 に答える