【问题标题】:How can I see a full log of exceptions in JAVA? [duplicate]如何在 JAVA 中查看完整的异常日志? [复制]
【发布时间】:2012-08-26 22:08:40
【问题描述】:

当我使用命令 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 exception-logging


    【解决方案1】:

    您已经看到它们了,这只是 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(Logback 中的N common frames omitted)仅表示这些异常之前已经打印过。在 Logback 中,您可以重组堆栈跟踪以避免重复并始终以正确的顺序打印堆栈行,请参阅my blog

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-04
        • 2011-05-19
        • 2015-10-03
        • 2021-09-22
        相关资源
        最近更新 更多