que - printstacktrace java
¿Cuál es el uso del método printStackTrace() en Java? (8)
Estoy pasando por un programa de socket. En él, se llama printStackTrace
al objeto IOException
en el bloque catch.
¿Qué hace printStackTrace()
realidad?
catch(IOException ioe)
{
ioe.printStackTrace();
}
No estoy enterado de su propósito. ¿Para qué se usa esto?
Ayuda a rastrear la excepción. Por ejemplo, está escribiendo algunos métodos en su programa y uno de sus métodos causa errores. Luego, la impresión de registros te ayudará a identificar qué método causa el error. Stack te ayudará así:
Primero se llamará e insertará su método principal a la pila, luego se llamará e insertará el segundo método a la pila en el orden LIFO y si ocurre algún error en algún lugar dentro de cualquier método, entonces esta pila ayudará a identificar ese método.
Tenía curiosidad acerca de esto también, así que armé un pequeño código de muestra donde puedes ver lo que está haciendo:
try {
throw new NullPointerException();
}
catch (NullPointerException e) {
System.out.println(e);
}
try {
throw new IOException();
}
catch (IOException e) {
e.printStackTrace();
}
System.exit(0);
Llamar a println(e)
:
java.lang.NullPointerException
Llamar a e.printStackTrace()
:
java.io.IOException at package.Test.main(Test.java:74)
Imprime la traza de pila de la Exception
a System.err
.
Es una herramienta muy simple, pero muy útil para diagnosticar una excepción. Te dice qué sucedió y en qué parte del código sucedió esto.
printStackTrace()
ayuda al programador a comprender dónde ocurrió el problema real. printStacktrace()
es un método de la clase Throwable
of java.lang
package. Imprime varias líneas en la consola de salida. La primera línea consiste en 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 del error / número de línea que comienza con at
.
La última línea siempre describe el destino afectado por el error / excepción. La segunda última línea nos informa sobre la siguiente línea en la pila donde 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 introdujo en la pila mediante el método fillInStackTrace()
de la clase Throwable
, que a su vez rellena los detalles de transferencia de control de programa en la pila de ejecución. Las líneas que comienzan con at
, no son más que los valores de la pila de ejecución. De esta forma, el programador puede entender dónde está el problema en el código.
Junto con el método printStackTrace()
, es una buena idea usar e.getmessage()
.
printStackTrace()
ayuda al programador a comprender dónde se produjo el problema real. El método printStackTrace()
es miembro de la clase Throwable
en el paquete java.lang
.
printStackTrace()
imprime las ubicaciones donde se produjo la excepción en el código fuente, lo que permite al autor que escribió el programa ver lo que salió mal. Pero dado que muestra problemas en el código fuente, los usuarios que pueden o no tener alguna experiencia de 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 los usuarios pueden no ser capaces de dar buenos datos sobre lo que salió mal.
Debe considerar el método Logger.getLogger()
, ofrece una mejor facilidad de manejo de excepciones (y registro) y además printStackTrace()
sin argumentos se considera obsoleto y SÓLO debe usarse para fines de depuración, no para la visualización del usuario.
printStackTrace
es un método de la clase Throwable
. este método muestra el mensaje de error en la consola donde obtenemos la excepción del código fuente. Estos métodos se pueden usar con catch block y describen:
- Nombre de la excepción
- Descripción de la excepción
- Donde estamos obteniendo la excepción
Hay tres métodos que describen la excepción en la consola en la que printStackTrace es uno de ellos. estos tres métodos son:
-
printStackTrace()
-
toString()
-
getMessage()
Ejemplo:
public class BabluGope {
public static void main(String[] args) {
try {
System.out.println(10/0);
} catch (ArithmeticException e) {
e.printStackTrace();
// System.err.println(e.toString());
//System.err.println(e.getMessage());
}
}
}
¿Cuál es el uso del método e.printStackTrace () en Java?
Bien, 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.
public class Main{
public static void main(String[] args) {
int a = 12;
int b = 2;
try {
int result = a / (b - 2);
System.out.println(result);
}
catch (Exception e)
{
System.out.println("Error: " + e.getMessage());
e.printStackTrace();
}
}
}
He usado el método e.printStackTrace();
para mostrar exactamente lo que está mal.
En la salida, podemos ver el siguiente resultado.
Error: / by zero
java.lang.ArithmeticException: / by zero
at Main.main(Main.java:10)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)