2012-09-01 31 views
7

Cuando ejecuto un programa Java con un comando java ExceptionTest, excepciones algunas veces se omiten y se parece a¿Cómo puedo ver un registro completo de excepciones en 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 

Me gustaría ver más 13 excepciones en este caso. ¿Hay una opción para ver todos los registros de excepción?

+0

Trate de usar log4j. –

Respuesta

13

Ya las ves, es solo la forma ridícula en que Java (y Logback por defecto) imprime excepciones de forma predeterminada. Este seguimiento de la pila:

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 

en realidad significa lo siguiente flujo del programa (de abajo hacia arriba):

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) 

El ... 13 more (N common frames omitted en Logback) sólo significa que estas excepciones ya se imprimieron antes. En Logback puede reestructurar la pista de pila para evitar duplicados e imprimir líneas de pila siempre en el orden correcto, consulte my blog.

Cuestiones relacionadas