logo

Diferentes maneiras de imprimir mensagem de exceção em Java

Nesta seção, aprenderemos como imprimir mensagens de exceção em Java usando diferentes métodos de Java lançável aula . A classe Throwable fornece os três métodos a seguir para imprimir a mensagem de exceção:

  • Usando o método printStackTrace
  • Usando o método getMessage()
  • Usando o método toString()
Diferentes maneiras de imprimir mensagem de exceção em Java

Vamos discutir um por um em detalhes.

Usando o método printStackTrace()

O printStackTrace() método está definido no Arremessável classe que pertence ao pacote java.lang. O método imprime o nome, descrição (como / por zero ), e a rastreamento de pilha (número da linha e nome da classe onde a exceção foi gerada) de uma exceção. O rastreamento de pilha rastreia onde ocorre a próxima exceção. É amplamente utilizado para imprimir a mensagem de exceção.

Existem três versões do método printStackTrace():

altura de kat timpf
Sintaxe Descrição
printStackTrace() O método imprime esse lançamento e seu backtrace no fluxo de erro padrão.
public void printStackTrace(PrintStreams) O método imprime throwable e seu backtrace para o fluxo de impressão especificado.
public void printStackTrace(PrintWriters) O método imprime throwable e seu backtrace para o gravador de impressão especificado.

Para entender o conceito do método printStackTrace(), primeiro, criaremos um Java programa que gerou uma exceção de divisão por zero. Neste programa, não usaremos o método printStackTrace() para imprimir a exceção.

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(); } } 

Quando executamos o programa acima, obtemos um exceção aritmética e a seguinte mensagem é impressa no console:

Diferentes maneiras de imprimir mensagem de exceção em Java

Na mensagem acima, não podemos apontar qual linha lança uma exceção. Portanto, é difícil descobrir onde ocorrem exceções. Para superar esse problema usamos o método printStackTrace(). Vamos usar o método printStackTrace() em um 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(); } } 

Vamos executar o programa acima.

Diferentes maneiras de imprimir mensagem de exceção em Java

A mensagem de exceção acima mostra claramente qual método gerou uma exceção, qual é o tipo de exceção e qual linha lança uma exceção.

A primeira linha da mensagem mostra que o programa lança um java.lang.ArithmeticException (divida por zero). A segunda linha mostra que as exceções ocorrem na linha 9 e o método divide() lança uma exceção. A terceira linha mostra essa exceção na linha vinte e um . O método main() também lança uma exceção porque o método divide() é chamado dentro do método main(). Portanto, usando o printStackTrace() método, podemos facilmente apontar o localização exata da exceção.

o que é hashmap java

Usando o método getMessage()

O getMessage() método também é definido no Arremessável classe que pertence ao pacote java.lang. O método imprime apenas a mensagem de uma exceção. Não imprime o nome da exceção nem a descrição. É amplamente utilizado para imprimir a mensagem de exceção.

Sintaxe:

 public String getMessage(); 

Ele retorna a string da mensagem detalhada desta instância Throwable. Pode ser nulo.

Vamos usar o método getMessage() em um 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); } } } 

Vamos executar o programa acima.

Diferentes maneiras de imprimir mensagem de exceção em Java

Observamos que ele imprime apenas a exceção. Portanto, não é amplamente utilizado porque não imprime a descrição detalhada de uma exceção.

Usando o método toString()

O para sequenciar() método do Arremessável classe substitui o para sequenciar() método da classe Object. Ele imprime a breve descrição de uma exceção. Ele não mostra as outras informações (como nome da exceção e rastreamento de pilha). Não é amplamente utilizado para imprimir a mensagem de exceção.

Vamos usar o método toString() em um programa Java.

PrintExceptionMessage4.java

regex java para
 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); } } } 

Vamos executar o programa acima.

Diferentes maneiras de imprimir mensagem de exceção em Java

Na mensagem acima, observamos que ela imprime apenas o nome e o tipo da exceção. Não indica em qual linha ocorreu a exceção.

Vimos as diferentes maneiras de imprimir a mensagem de exceção em Java. Sugerimos que você utilize o printStackTrace() método porque aponta para o local onde ocorre uma exceção.