has - throw exception java
Imprime el rastro de la pila de una excepción (8)
¿Cómo imprimo el rastro de la pila de una excepción a una corriente que no sea stderr? Una manera que encontré es usar getStackTrace () e imprimir toda la lista en la transmisión.
Apache commons proporciona utilidad para convertir el seguimiento de la pila de throwable a string.
Uso:
ExceptionUtils.getStackTrace(e)
Para obtener la documentación completa, consulte https://commons.apache.org/proper/commons-lang/javadocs/api-release/index.html
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)
P.ej
catch(Exception e) {
e.printStackTrace(System.out);
}
Esto imprimirá la traza de la pila a la salida estándar en lugar del error estándar.
La clase printStackTrace
proporciona dos métodos denominados printStackTrace
, uno que acepta un PrintWriter
y otro que toma un PrintStream
, que emite el seguimiento de pila a la secuencia dada. Considera usar uno de estos.
No es hermoso, pero una solución no obstante:
StringWriter writer = new StringWriter();
PrintWriter printWriter = new PrintWriter( writer );
exception.printStackTrace( printWriter );
printWriter.flush();
String stackTrace = writer.toString();
Para los minimalistas desarrolladores de Android: Log.getStackTraceString(exception)
Tengo un método que ayuda a obtener 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();
}
Ver javadoc
out = some stream ...
try
{
}
catch ( Exception cause )
{
cause . printStrackTrace ( new PrintStream ( out ) ) ;
}