Как я могу увидеть полный журнал исключений в JAVA?

Когда я запускаю некоторую Java-программу с командой java ExceptionTest, исключения иногда опускаются и выглядят как

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 исключений в этом случае. Есть ли возможность просмотреть все журналы исключений?

2 ответа

Вы уже видите их, это всего лишь смешной способ, которым 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 в Logback) только означает, что эти исключения уже были напечатаны ранее. В Logback вы можете реструктурировать дорожку стека, чтобы избежать дублирования и печатать строки стека всегда в правильном порядке, см. Мой блог.

Нет еще 13 исключений. В стеке вызовов есть еще 13 строк, которые идентичны предыдущим стекам вызовов, как описано здесь: http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html()

Другие вопросы по тегам