2012-09-01 3 views
7

Quando eseguo qualche programma Java con un comando java ExceptionTest, eccezioni a volte sono omessi e si presenta comeCome posso vedere un registro completo delle eccezioni in 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 

Mi piacerebbe vedere 13 più eccezioni in questo caso. C'è un'opzione per vedere tutto il registro delle eccezioni?

+0

Prova a usare log4j. –

risposta

13

Li vedi già, è solo il modo ridicolo in cui Java (e Logback by defaul) stampano eccezioni per impostazione predefinita. Questa analisi dello stack:

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 

significa in realtà il seguente svolgimento del programma (dal basso verso l'alto):

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) 

Il ... 13 more (N common frames omitted in Logback) significa solo che queste eccezioni erano già stampate prima. In Logback è possibile ristrutturare la traccia di stack per evitare duplicati e stampare le linee di stack sempre nell'ordine corretto, vedere my blog.