¿Cómo imprimo el seguimiento de la pila de una excepción a una secuencia distinta de stderr? Una manera que encontré es usar getStackTrace() e imprimir toda la lista en la transmisión.Imprimir el seguimiento de la pila de una excepción
Respuesta
La clase Throwable proporciona dos métodos denominados printStackTrace
, uno que acepta un uno PrintWriter
y que lleva en un PrintStream
, que da salida a la traza de la pila a la corriente dada. Considera usar uno de estos.
Hay una forma alternativa de Throwable.printStackTrace() que toma una secuencia de impresión como argumento. http://download.oracle.com/javase/6/docs/api/java/lang/Throwable.html#printStackTrace(java.io.PrintStream)
E.g.
catch(Exception e) {
e.printStackTrace(System.out);
}
Esto imprimirá el trazado de la pila como estándar en lugar del error estándar.
@FranklinYu, el objetivo de la pregunta es que no desea imprimir en stderr, sino en otra secuencia arbitraria. –
No es hermosa, sino una solución, no obstante:
StringWriter writer = new StringWriter();
PrintWriter printWriter = new PrintWriter(writer);
exception.printStackTrace(printWriter);
printWriter.flush();
String stackTrace = writer.toString();
Esto es lo que necesitaba (¡aunque me siento realmente sucio al usarlo!) –
Ver javadoc
out = some stream ...
try
{
}
catch (Exception cause)
{
cause . printStrackTrace (new PrintStream (out)) ;
}
Para los minimalistas dev android: Log.getStackTraceString(exception)
Tengo un método que ayuda a conseguir la StackTrace
private static String getStackTrace(Exception ex) {
StringBuffer sb = new StringBuffer(500);
StackTraceElement[] st = ex.getStackTrace();
sb.append(ex.getClass().getName() + ": " + ex.getMessage() + "\n");
for (int i = 0; i < st.length; i++) {
sb.append("\t at " + st[i].toString() + "\n");
}
return sb.toString();
}
- 1. ¿Cómo imprimir el seguimiento completo de pila en la excepción?
- 2. Imprimir la información de seguimiento de la pila de C#
- 3. Excepción sin seguimiento de pila en Java
- 4. Lanzar excepción pero persistir el seguimiento de la pila
- 5. Imprimir seguimiento de pila en la ventana de salida
- 6. Imprimir el seguimiento de pila en C++ (MSVC)?
- 7. "Excepción al cargar la aplicación" sin un seguimiento de pila
- 8. cómo imprimir seguimiento de la pila en el archivo de registro
- 9. Imprimir un seguimiento de pila de otro hilo
- 10. ¿Cómo se puede inspeccionar mediante programación el seguimiento de la pila de una excepción en Python?
- 11. ¿Cómo imprimir un seguimiento de pila en Node.js?
- 12. Página de error: cómo imprimir el seguimiento de pila en JSP
- 13. ¿Manera fácil de imprimir el seguimiento de pila actual de una aplicación?
- 14. Excepción recurrente sin un seguimiento de pila: ¿cómo restablecerlo?
- 15. ¿Cómo se muestra el seguimiento de la pila en una excepción detectada?
- 16. Cómo imprimir stacktrace para una excepción Android
- 17. programación C# obtener Seguimiento de la pila
- 18. Objective-C Seguimiento de la pila
- 19. no muestra el seguimiento de la pila de la excepción en EUnit
- 20. Encontrar el seguimiento de la pila real de Java desde un seguimiento de la pila de JavaScript
- 21. Obtener el seguimiento completo de la pila de cadenas, incluida la excepción interna
- 22. ¿Cómo puedo escribir un seguimiento de pila de excepción en Erlang después de atraparlo?
- 23. ¿Cómo puedo imprimir el seguimiento completo de la pila con GlassFish?
- 24. ¿Cómo obtengo el seguimiento de la pila de un objeto de excepción en Python?
- 25. ¿Cómo obtengo el seguimiento de la pila de un objeto de excepción en Python 2.7?
- 26. ¿Hay alguna forma de imprimir el seguimiento de pila a pedido?
- 27. Error de seguimiento de pila
- 28. número de línea incorrecta en seguimiento de la pila
- 29. Cómo volver a lanzar la excepción interna de una TargetInvocationException sin perder el seguimiento de la pila
- 30. Cómo obtener el seguimiento de la pila de un hilo
Si desea obtener traza excepción como cadena puede llamar 'método de getStackTrace' Trowable (la excepción) que devolverá variedad de objetos' StackTraceElement' que se pueden combinar con una cadena (usando el método toString de ese objeto para obtener una línea de un rastro). – jcubic