如何在JAVA中查看完整的异常日志?

aqj*_*une 8 java exception-logging

当我使用命令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
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我想看到另外13个例外.是否有选项可以查看所有异常日志?

Tom*_*icz 20

你已经看到了它们,它只是荒谬的方式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
Run Code Online (Sandbox Code Playgroud)

实际上意味着以下程序流程(从下到上):

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)
Run Code Online (Sandbox Code Playgroud)

... 13 more(N common frames omitted在的logback)仅意味着在这些异常已经之前打印.在Logback中,您可以重新构建堆栈跟踪以避免重复并始终以正确的顺序打印堆栈行,请参阅我的博客.


Jen*_*der 9

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