Un seguimiento de pila (o seguimiento) es una salida que muestra la pila de métodos de su aplicación. Por lo general, verá uno en su terminal cuando su aplicación encuentre un error.
Como sugiere el nombre, una estructura de datos de pila almacena los métodos en un seguimiento de pila. El método donde comienza la ejecución del programa está en la parte inferior de la pila, mientras que el que produce el seguimiento de la pila está en la parte superior.
Un seguimiento de pila puede ser muy útil cuando está depurando su código.
¿Por qué es importante un seguimiento de pila?
Un seguimiento de pila es una herramienta de depuración importante. Le brinda información detallada, como el tipo de error, el método en el que ocurrió, la línea en su código donde ocurrió y la ruta del archivo.
Para un programador experimentado, esta información es una mina de oro para comprender qué salió mal exactamente y dónde.
Como programador, también puede pedirle a su programa que cree un seguimiento de pila a pedido. Esto puede ser particularmente útil para el mantenimiento del código y la resolución de problemas.
Cómo generar un seguimiento de pila
Dependiendo de la versión de su compilador, lo más probable es que obtenga un seguimiento legible. Un rastreo legible proporciona un texto fácil de usar sobre el error, a diferencia del rastreo normal. Esto es especialmente cierto para los nuevos compiladores. Por lo tanto, la mejor manera de aprender sobre los seguimientos de pila es producir uno usted mismo.
Puede producir un seguimiento de pila sin tener ningún error en su código. Para hacerlo, simplemente use el pila de volcado metodo de la java.lang. Hilo clase. Mostrará todos los métodos que han sido llamados, desde el que llama a dumpStack. El método de llamada será el que está encima del estructura de datos de pila.
Aquí hay un programa de ejemplo que genera explícitamente un seguimiento de pila:
claseStackTraceDemo{
públicoestáticovacíoprincipal(Cadena[] argumentos){
día();
}estáticovacíodía(){
horas();
}estáticovacíohoras(){
minutos();
}
estáticovacíominutos(){
En t un = 24 * 60;
Sistema.salida.println (a + " minutos en un día");
Hilo.dumpStack();
}
}
Producción:
1440 minutos en un día
Java.lang.Excepción: Pilarastro
en java.base/java.lang. Subproceso.dumpStack (Subproceso.java: 138)
aStackTraceDemo.minutos(StackTraceDemo.Java:17)
aStackTraceDemo.horas(StackTraceDemo.Java:11)
aStackTraceDemo.día(StackTraceDemo.Java:7)
aStackTraceDemo.principal(StackTraceDemo.Java:3)
En este resultado, puede observar que el rastreo muestra cómo el programa llamó a cada metodo Java y en qué número de línea en su código fuente. El método que generó el seguimiento de la pila es el que se muestra en la parte superior de la pila. El método que llamó a ese está en la línea debajo de él, y así sucesivamente.
Más allá del seguimiento de la pila
De forma predeterminada, cuando su programa Java se encuentra con un error, se detendrá y mostrará un seguimiento de la pila. Sin embargo, puede optar por manejar estos errores con elegancia en lugar de mostrar mensajes que puedan confundir a los usuarios finales.
Puede mejorar el manejo de errores de su programa usando un bloque try...catch() para capturar excepciones. También es importante considerar y comprender los diversos tipos de errores que pueden encontrar sus programas.