Hemos analizado el uso de la función de la pila de excepciones Java a través del código de ejemplo y compilamos dos métodos para Java para obtener información de excepción a continuación. Lo siguiente es todo contenido:
(Stack Trace) Exception Stack Trace se refiere a:
Al lanzar lanzado, el objeto lanzable lanza múltiples capas de llamadas de método (pila de llamadas de método) que atraviesa el proceso (transbordador). Cuanto más se acerca a la declaración de lanzamiento, el método ingresa por primera vez en la pila de excepciones.
(Cadena causal lanzable) Excepción de la cadena de causa:
La propiedad Cause en la clase lanzable representa la excepción original envuelta por la excepción actual. (Se puede llamar la causa de la excepción)
Al imprimir la pista de la pila de excepciones, la pila de excepciones de la excepción original se imprime recursivamente.
Ahora analicemos el método de throwable.printStackTrace ().
Inside showable.printstackTrace (printStreamorWriter s), podemos ver:
Al imprimir la pila de excepciones, la pila de excepciones del objeto de excepción actual esto se imprime primero.
Luego imprima la cadena de causas de la excepción. (Imprime recursivamente la pila de excepciones de la excepción original)
sincronizado (s.lock ()) {// imprime nuestro trazo de pila // 1. Primero imprima la pila de excepción del objeto de excepción actual esto. S.Println (esto); StackTraceElement [] traza = getourStackTrace (); para (StackTraceElement TraceElement: Trace) S.Println ("/Tat" + TraceElement); // Imprima excepciones suprimidas, si las hay (SE de lanzamiento: GetSupressed ()) se.PrintencLosedStackTrace (s, traza, supressed_caption, "/t", deJavu); // Imprimir causa, si la hay // 2. Imprima causa nuestroCause = getCause (); if (ourCause! = null) ourCause.printencLosedStackTrace (s, trace, causa_caption, "", dejavu); }Java obtiene información de la pila de excepciones
Método 1:
public static string getStackTrace (showable t) {stringwriter sw = new StringWriter (); PrintWriter pw = new PrintWriter (SW); intente {t.printstacktrace (pw); return sw.ToString (); } finalmente {pw.close (); }}Método 2:
org.apache.commons.lang3.Exception.ExceptionUtils.getStackTrace (e);