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()
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:
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.
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.
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.
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.