logo

Diversi modi per stampare un messaggio di eccezione in Java

In questa sezione impareremo come stampare messaggi di eccezione in Java utilizzando diversi metodi di Java lanciabile classe . La classe Throwable fornisce i tre metodi seguenti per stampare il messaggio di eccezione:

  • Utilizzo del metodo printStackTrace
  • Utilizzando il metodo getMessage()
  • Utilizzo del metodo toString()
Diversi modi per stampare un messaggio di eccezione in Java

Discutiamo uno per uno in dettaglio.

Utilizzo del metodo printStackTrace()

IL stampaStackTrace() metodo è definito nel Lanciabile classe che appartiene al pacchetto java.lang. Il metodo stampa il file nome, descrizione (ad esempio /per zero ), e il traccia dello stack (numero di riga e nome della classe in cui è stata sollevata l'eccezione) di un'eccezione. L'analisi dello stack traccia il punto in cui si verifica l'eccezione successiva. È ampiamente utilizzato per stampare il messaggio di eccezione.

Esistono tre versioni del metodo printStackTrace():

lunghezza della stringa java
Sintassi Descrizione
stampaStackTrace() Il metodo stampa questo oggetto lanciabile e il relativo backtrace nel flusso di errori standard.
public void printStackTrace(PrintStream s) Il metodo stampa Throwable e il suo backtrace nel flusso di stampa specificato.
public void printStackTrace(PrintWriter s) Il metodo stampa Throwable e il relativo backtrace al writer di stampa specificato.

Per comprendere il concetto del metodo printStackTrace(), creeremo innanzitutto un file Giava programma che ha sollevato un'eccezione di divisione per zero. In questo programma non utilizzeremo il metodo printStackTrace() per stampare l'eccezione.

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 eseguiamo il programma sopra, otteniamo un file eccezione aritmetica e sulla console viene stampato il seguente messaggio:

Diversi modi per stampare un messaggio di eccezione in Java

Nel messaggio sopra, non possiamo indicare quale linea genera un'eccezione. Pertanto, è difficile trovare dove si verificano le eccezioni. Per superare questo problema utilizziamo il metodo printStackTrace(). Usiamo il metodo printStackTrace() in un programma 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(); } } 

Eseguiamo il programma sopra.

Diversi modi per stampare un messaggio di eccezione in Java

Il messaggio di eccezione riportato sopra mostra chiaramente quale metodo ha sollevato un'eccezione, di quale tipo di eccezione si tratta e quale riga genera un'eccezione.

attore chiranjeevi

La prima riga del messaggio mostra che il programma lancia a java.lang.ArithmeticException (dividi per zero). La seconda riga mostra che si verificano eccezioni alla riga 9 e il metodo divide() genera un'eccezione. La terza riga mostra l'eccezione alla riga ventuno . Anche il metodo main() genera un'eccezione perché il metodo divide() viene chiamato all'interno del metodo main(). Quindi, utilizzando il stampaStackTrace() metodo, possiamo facilmente evidenziare il posizione esatta dell'eccezione.

Utilizzando il metodo getMessage()

IL getMessaggio() il metodo è definito anche nel Lanciabile classe che appartiene al pacchetto java.lang. Il metodo stampa solo il messaggio di un'eccezione. Non stampa né il nome dell'eccezione né la descrizione. È ampiamente utilizzato per stampare il messaggio di eccezione.

Sintassi:

 public String getMessage(); 

Restituisce la stringa del messaggio di dettaglio di questa istanza Throwable. Potrebbe essere nullo.

Usiamo il metodo getMessage() in un programma Java.

PrintExceptionMessage3.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); } } } 

Eseguiamo il programma sopra.

Diversi modi per stampare un messaggio di eccezione in Java

Osserviamo che stampa solo l'eccezione. Pertanto non è ampiamente utilizzato perché non stampa la descrizione dettagliata di un'eccezione.

Utilizzo del metodo toString()

IL accordare() metodo del Lanciabile la classe sovrascrive la classe accordare() metodo della classe Object. Stampa la breve descrizione di un'eccezione. Non mostra le altre informazioni (come il nome dell'eccezione e l'analisi dello stack). Non è ampiamente utilizzato per stampare il messaggio di eccezione.

analizzando la stringa in int

Usiamo il metodo toString() in un programma 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); } } } 

Eseguiamo il programma sopra.

Diversi modi per stampare un messaggio di eccezione in Java

Nel messaggio precedente osserviamo che stampa solo il nome e il tipo dell'eccezione. Non indica in quale riga si è verificata l'eccezione.

Abbiamo visto i diversi modi per stampare il messaggio di eccezione in Java. Ti consigliamo di utilizzare il file stampaStackTrace() metodo perché punta alla posizione in cui si verifica un'eccezione.