logo

Diferentes formas de imprimir mensajes de excepción en Java

En esta sección aprenderemos cómo imprimir mensajes de excepción en Java mediante el uso de diferentes métodos de Lanzable en Java clase . La clase Throwable proporciona los siguientes tres métodos para imprimir el mensaje de excepción:

  • Usando el método printStackTrace
  • Usando el método getMessage()
  • Usando el método toString()
Diferentes formas de imprimir mensajes de excepción en Java

Analicemos uno por uno en detalle.

Usando el método printStackTrace()

El imprimirStackTrace() método se define en el arrojable clase que pertenece al paquete java.lang. El método imprime el nombre, descripción (como / por cero ), y el seguimiento de pila (número de línea y nombre de clase donde se generó la excepción) de una excepción. El seguimiento de la pila rastrea dónde se produce la siguiente excepción. Se usa ampliamente para imprimir el mensaje de excepción.

Hay tres versiones del método printStackTrace():

bucle mecanografiado para cada uno
Sintaxis Descripción
imprimirStackTrace() El método imprime este elemento arrojable y su seguimiento en el flujo de error estándar.
printStackTrace público vacío (PrintStream s) El método imprime un elemento arrojable y su seguimiento hasta el flujo de impresión especificado.
printStackTrace público vacío (PrintWriter s) El método imprime lo arrojable y su seguimiento hasta el escritor de impresión especificado.

Para comprender el concepto del método printStackTrace(), primero crearemos un Java programa que planteó una excepción de división por cero. En este programa, no usaremos el método printStackTrace() para imprimir la excepción.

PrintExceptionMessage1.java

 public class PrintExceptionMessage1 { //user defined method public static void divide() { try { //raised divide by zero exception int a = 100/0; } catch (Exception e) { //prints exception message System.out.println(e); } } //main() method public static void main(String args[]) { //calling user defined method divide(); } } 

Cuando ejecutamos el programa anterior, obtenemos un excepción aritmética y se imprime el siguiente mensaje en la consola:

Diferentes formas de imprimir mensajes de excepción en Java

En el mensaje anterior, no podemos señalar qué línea genera una excepción. Por tanto, es difícil encontrar dónde se producen las excepciones. Para superar este problema utilizamos el método printStackTrace(). Usemos el método printStackTrace() en un programa Java.

PrintExceptionMessage2.java

 public class ExceptionExample2 { //user defined method public static void divide() { try { //raised divide by zero exception int a = 100/0; } catch (Exception e) { //prints exception message and detail of the exception e.printStackTrace(); } } //main() method public static void main(String args[]) { //calling user defined method divide(); } } 

Ejecutemos el programa anterior.

tipos de árboles binarios
Diferentes formas de imprimir mensajes de excepción en Java

El mensaje de excepción anterior muestra claramente qué método generó una excepción, qué tipo de excepción es y qué línea arroja una excepción.

La primera línea del mensaje muestra que el programa arroja un java.lang.ArithmeticException (dividir entre cero). La segunda línea muestra que las excepciones ocurren en la línea 9 y el método divide() arroja una excepción. La tercera línea muestra esa excepción en la línea 21 . El método main() también genera una excepción porque el método divide() se llama dentro del método main(). Por lo tanto, utilizando el imprimirStackTrace() método, podemos señalar fácilmente el localización exacta de la excepción.

Usando el método getMessage()

El obtener mensaje() El método también se define en el arrojable clase que pertenece al paquete java.lang. El método imprime solo el mensaje de una excepción. No imprime el nombre de la excepción ni la descripción. Se usa ampliamente para imprimir el mensaje de excepción.

Sintaxis:

 public String getMessage(); 

Devuelve la cadena de mensaje detallada de esta instancia de Throwable. Puede ser nulo.

Usemos el método getMessage() en un programa Java.

PrintExceptionMesssage3.java

 public class PrintExceptionMessage3 { public static void main(String args[]) { try { int a = 100/0; } catch (Exception e) { //prints only the message of the exception System.out.println(e.getMessage()); //use the following statement if you want to print name of the exception and which exception thrown //System.out.println(e); } } } 

Ejecutemos el programa anterior.

marco de colección java
Diferentes formas de imprimir mensajes de excepción en Java

Observamos que imprime solo la excepción. Por lo tanto, no se usa mucho porque no imprime la descripción detallada de una excepción.

Usando el método toString()

El Encadenar() método de la arrojable clase anula el Encadenar() método de la clase Objeto. Imprime la breve descripción de una excepción. No muestra otra información (como el nombre de la excepción y el seguimiento de la pila). No se usa mucho para imprimir el mensaje de excepción.

Usemos el método toString() en un programa Java.

PrintExceptionMessage4.java

 public class PrintExceptionMessage4 { public static void main(String args[]) { try { int a = 100/0; } catch (Exception e) { //we can use either of the statement to print the exception message //both prints the same message System.out.println(e.toString()); //System.out.println(e); } } } 

Ejecutemos el programa anterior.

Diferentes formas de imprimir mensajes de excepción en Java

En el mensaje anterior, observamos que imprime solo el nombre y el tipo de excepción. No indica en qué línea se ha producido la excepción.

Hemos visto las diferentes formas de imprimir el mensaje de excepción en Java. Le sugerimos que utilice el imprimirStackTrace() método porque apunta a la ubicación donde se produce una excepción.