logo

Diferite moduri de a imprima mesajul de excepție în Java

În această secțiune, vom învăța cum să imprimați mesaje de excepție în Java prin utilizarea diferitelor metode ale Java Throwable clasa . Clasa Throwable oferă următoarele trei metode pentru a imprima mesajul de excepție:

  • Folosind metoda printStackTrace
  • Folosind metoda getMessage().
  • Folosind metoda toString().
Diferite moduri de a imprima mesajul de excepție în Java

Să discutăm unul câte unul în detaliu.

Folosind metoda printStackTrace().

The printStackTrace() metodă este definită în Aruncabil clasa care aparține pachetului java.lang. Metoda imprimă nume, descriere (ca / cu zero ), si urma stivei (numărul liniei și numele clasei în cazul în care a fost ridicată o excepție) a unei excepții. Urmărirea stivei urmărește unde apare următoarea excepție. Este utilizat pe scară largă pentru a tipări mesajul de excepție.

Există trei versiuni ale metodei printStackTrace():

lista de inițializare python
Sintaxă Descriere
printStackTrace() Metoda imprimă acest throwable și backtrace la fluxul de erori standard.
public void printStackTrace(PrintStream s) Metoda imprimă throwable și backtrace la fluxul de imprimare specificat.
public void printStackTrace(PrintWriter s) Metoda imprimă throwable și backtrace la scriitorul de imprimare specificat.

Pentru a înțelege conceptul metodei printStackTrace(), mai întâi, vom crea un Java program care a ridicat o excepție de împărțire la zero. În acest program, nu vom folosi metoda printStackTrace() pentru a tipări excepția.

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

Când rulăm programul de mai sus, obținem un excepție aritmetică iar pe consolă apare următorul mesaj:

Diferite moduri de a imprima mesajul de excepție în Java

În mesajul de mai sus, nu putem indica ce linie generează o excepție. Deci, este dificil de găsit unde apar excepții. Pentru a depăși această problemă, folosim metoda printStackTrace(). Să folosim metoda printStackTrace() într-un program 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(); } } 

Să rulăm programul de mai sus.

np.random.rand
Diferite moduri de a imprima mesajul de excepție în Java

Mesajul de excepție de mai sus arată în mod clar ce metodă a generat o excepție, ce tip de excepție este și ce linie generează o excepție.

Prima linie a mesajului arată că programul aruncă a java.lang.ArithmeticException (împarte la zero). A doua linie arată că la rând apar excepții 9 iar metoda divide() aruncă o excepție. A treia linie arată acea excepție la rând douăzeci și unu . Metoda main() aruncă și o excepție deoarece metoda divide() este numită în interiorul metodei main(). Prin urmare, folosind printStackTrace() metoda, putem sublinia cu ușurință locatie exacta de excepție.

Folosind metoda getMessage().

The getMessage() metoda este definită și în Aruncabil clasă care aparține pachetului java.lang. Metoda imprimă doar mesajul unei excepții. Nu tipărește nici numele excepției, nici descrierea. Este utilizat pe scară largă pentru a tipări mesajul de excepție.

Sintaxă:

 public String getMessage(); 

Returnează șirul de mesaj detaliat al acestei instanțe Throwable. Poate fi nul.

Să folosim metoda getMessage() într-un program 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); } } } 

Să rulăm programul de mai sus.

sql ordine după dată
Diferite moduri de a imprima mesajul de excepție în Java

Observăm că imprimă doar excepția. Deci, nu este utilizat pe scară largă deoarece nu imprimă descrierea detaliată a unei excepții.

Folosind metoda toString().

The toString() metoda de Aruncabil clasa trece peste toString() metoda clasei Object. Tipărește scurta descriere a unei excepții. Nu afișează celelalte informații (cum ar fi numele excepției și urmărirea stivei). Nu este utilizat pe scară largă pentru a tipări mesajul de excepție.

Să folosim metoda toString() într-un program 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); } } } 

Să rulăm programul de mai sus.

Diferite moduri de a imprima mesajul de excepție în Java

În mesajul de mai sus, observăm că afișează doar numele și tipul excepției. Nu indică la ce linie a avut loc excepția.

Am văzut diferitele moduri de a tipări mesajul de excepție în Java. Vă sugerăm să utilizați printStackTrace() metoda deoarece indică locația în care apare o excepție.