当我使用命令 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 个异常。是否有查看所有异常日志的选项?
你已经看到它们了,这只是 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)
... 13 more
(N common frames omitted
in Logback)仅表示这些异常之前已打印。在 Logback 中,您可以重组堆栈轨道以避免重复并始终以正确的顺序打印堆栈行,请参阅 my blog .