occurred has excepciones error java exception

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.




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 ) ) ; }


Throwable.printStackTrace(..) puede tomar un argumento PrintWriter o PrintStream :

} catch (Exception ex) { ex.printStackTrace(new PrintStream(yourOutputStream)); }

Dicho esto, considere usar una interfaz de registrador como SLF4J con una implementación de registro como LOGBack o log4j .