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 omitted) 仅表示这些异常之前已经打印过。在 Logback 中,您可以重组堆栈跟踪以避免重复并始终以正确的顺序打印堆栈行,请参阅我的博客

于 2012-09-01T09:05:21.520 回答
4

没有其他 13 个例外。调用堆栈还有 13 行与以前的调用堆栈相同,如下所述:http: //java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html#printStackTrace ()

于 2012-09-01T09:06:56.180 回答