Estoy pasando por un programa de socket. En él, printStackTrace
se llama al IOException
objeto en el bloque de captura.
¿Qué hace printStackTrace()
realmente?
catch(IOException ioe)
{
ioe.printStackTrace();
}
Desconozco su propósito. ¿Para qué se usa esto?
e.printStackTrace(); System.exit(1);
aquí quiero hacer la misma pregunta que el OP, pero en una línea diferente: ¿Cuál es exactamente el propósito de esto? ¿No imprimirá el JRE automáticamente el seguimiento de la pila y se cerrará cuando se lance la excepción? Es decir, no hay mucho "Manejo de excepciones" aquí, ¿verdad?Respuestas:
Es un método en
Exception
instancias que imprime el seguimiento de pila de la instancia enSystem.err
.Es una herramienta muy simple pero muy útil para diagnosticar excepciones. Le dice lo que sucedió y en qué parte del código sucedió esto.
A continuación, se muestra un ejemplo de cómo podría usarse en la práctica:
fuente
catch
bloques :-)throw new RuntimeException(e)
También tenía un poco de curiosidad acerca de esto, así que reuní un pequeño código de muestra donde puedes ver lo que está haciendo:
Llamando
println(e)
:Llamando
e.printStackTrace()
:fuente
System.err.println(e);
será más apropiado.Ayuda a rastrear la excepción. Por ejemplo, está escribiendo algunos métodos en su programa y uno de sus métodos causa un error. Luego, printstack te ayudará a identificar qué método causa el error. Stack ayudará así:
Primero se llamará e insertará su método principal en la pila, luego se llamará e insertará el segundo método en la pila en orden LIFO y si ocurre algún error en algún lugar dentro de cualquier método, esta pila ayudará a identificar ese método.
fuente
printStackTrace()
ayuda al programador a comprender dónde ocurrió el problema real.printStacktrace()
es un método de la claseThrowable
dejava.lang
paquete. Imprime varias líneas en la consola de salida. La primera línea consta de varias cadenas. Contiene el nombre de la subclase Throwable y la información del paquete. A partir de la segunda línea, describe la posición de error / número de línea que comienza conat
.La última línea siempre describe el destino afectado por el error / excepción. La penúltima línea nos informa sobre la siguiente línea de la pila a la que va el control después de obtener la transferencia del número de línea descrito en la última línea. Los errores / excepciones representan la salida en forma de pila, que se introdujeron en la pila por
fillInStackTrace()
método deThrowable
clase, que a su vez completa los detalles de transferencia de control del programa en la pila de ejecución. Las líneas que comienzan conat
, no son más que los valores de la pila de ejecución. De esta manera, el programador puede comprender en qué parte del código se encuentra el problema real.Junto con el
printStackTrace()
método, es una buena idea utilizare.getmessage()
.fuente
printStackTrace()
imprime las ubicaciones donde ocurrió la excepción en el código fuente, lo que permite al autor que escribió el programa ver qué salió mal. Pero dado que muestra problemas en el código fuente, los usuarios que pueden tener o no experiencia en codificación pueden no ser capaces de entender qué salió mal, por lo que si el programa permite al usuario enviar mensajes de error a los autores, el Es posible que los usuarios no puedan proporcionar datos fiables sobre lo que salió mal.Debe considerar el
Logger.getLogger()
método, ofrece una mejor facilidad de manejo de excepciones (registro) y, además,printStackTrace()
sin argumentos se considera obsoleto y SOLO debe usarse con fines de depuración, no para la visualización del usuario.fuente
La
printStackTrace()
ayuda al programador a entender dónde se produjo el problema real. ElprintStackTrace()
método es un miembro de la claseThrowable
deljava.lang
paquete.fuente
printStackTrace
es un método de laThrowable
clase. Este método muestra un mensaje de error en la consola; donde obtenemos la excepción en el código fuente. Estos métodos se pueden utilizar con el bloque de captura y describen:Los tres métodos que describen la excepción en la consola (en la que printStackTrace es uno de ellos) son:
printStackTrace()
toString()
getMessage()
Ejemplo:
fuente
printStackTrace () ayuda al programador a comprender dónde ocurrió el problema real. Ayuda a rastrear la excepción. es el método printStackTrace () de la clase Throwable heredado por cada clase de excepción. Este método imprime el mismo mensaje del objeto e y también el número de línea donde ocurrió la excepción.
El siguiente es otro ejemplo de pila de impresión de la excepción en Java.
java.lang.Throwable: esta es una nueva excepción en Java ... en ClassName.methodName (fileName: 5)
fuente
¿Cuál es el uso del método e.printStackTrace () en Java?
Bueno, el propósito de usar este método
e.printStackTrace();
es ver qué es exactamente lo que está mal.Por ejemplo, queremos manejar una excepción. Echemos un vistazo al siguiente ejemplo.
He usado el método
e.printStackTrace();
para mostrar exactamente lo que está mal.En la salida, podemos ver el siguiente resultado.
fuente
printStackTrace()
indica en qué línea está obteniendo un error y por qué está obteniendo un error.Ejemplo:
fuente