logo

Különböző módok a kivételes üzenet nyomtatására Java nyelven

Ebben a részben megtanuljuk hogyan lehet kivételüzeneteket kinyomtatni Java nyelven különböző módszerekkel a Java dobható osztály . A Throwable osztály a következő három módszert kínálja a kivételüzenet kinyomtatására:

  • A printStackTrace módszer használata
  • A getMessage() metódus használata
  • A toString() metódus használata
Különböző módok a kivételes üzenet nyomtatására Java nyelven

Beszéljük meg egyenként részletesen.

A printStackTrace() metódus használata

A printStackTrace() módszer pontjában van meghatározva Dobható osztály, amely a java.lang csomaghoz tartozik. A módszer kiírja a név, leírás (mint például / nullával ), és a verem nyoma (sorszám és osztálynév, ahol kivétel merült fel) egy kivétel. A verem nyomkövetése nyomon követi, ahol a következő kivétel előfordul. Széles körben használják a kivételüzenet kinyomtatására.

A printStackTrace() metódusnak három változata létezik:

java karakterlánc osztály
Szintaxis Leírás
printStackTrace() A metódus kiírja ezt a dobást és a visszakövetését a szabványos hibafolyamhoz.
public void printStackTrace(PrintStream s) A metódus dobhatóan nyomtat, és visszaköveti a megadott nyomtatási adatfolyamra.
public void printStackTrace (PrintWriter s) A módszer dobhatóan nyomtat, és visszaköveti a megadott nyomtatóíróhoz.

A printStackTrace() metódus fogalmának megértéséhez először létrehozunk a Jáva program, amely a nullával osztás kivételt emelte ki. Ebben a programban nem használjuk a printStackTrace() metódust a kivétel kinyomtatására.

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

Amikor a fenti programot futtatjuk, kapunk egy számtani kivétel és a következő üzenet jelenik meg a konzolon:

Különböző módok a kivételes üzenet nyomtatására Java nyelven

A fenti üzenetben nem tudjuk megjelölni, hogy melyik sor dob kivételt. Így nehéz megtalálni, hol fordulnak elő kivételek. A probléma megoldására a printStackTrace() metódust használjuk. Használjuk a printStackTrace() metódust egy Java programban.

PrintExceptionMessage2.java

adjunk hozzá egy tömbhöz java-ban
 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(); } } 

Futtassuk a fenti programot.

Különböző módok a kivételes üzenet nyomtatására Java nyelven

A fenti kivételüzenet egyértelműen megmutatja, hogy melyik metódus hozott létre kivételt, milyen típusú kivétel, és melyik sor dob kivételt.

Az üzenet első sora azt mutatja, hogy a program a java.lang.ArithmeticException (osztjuk nullával). A második sor azt mutatja, hogy kivételek a sorban fordulnak elő 9 a divide() metódus pedig kivételt dob. A harmadik sor a sor kivételét mutatja huszonegy . A main() metódus is dob egy kivételt, mert a divide() metódus a main() metóduson belül kerül meghívásra. Ezért a printStackTrace() módszerrel könnyen rámutathatunk a pontos hely a kivételtől.

A getMessage() metódus használata

A getMessage() módszert is meghatározza a Dobható osztály, amely a java.lang csomaghoz tartozik. A metódus csak a kivétel üzenetét írja ki. Nem írja ki sem a kivétel nevét, sem a leírást. Széles körben használják a kivételüzenet kinyomtatására.

Szintaxis:

 public String getMessage(); 

Ennek a dobható példánynak a részletes üzenetet adja vissza. Lehet nulla.

Használjuk a getMessage() metódust egy Java programban.

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

Futtassuk a fenti programot.

Különböző módok a kivételes üzenet nyomtatására Java nyelven

Megfigyeljük, hogy csak a kivételt írja ki. Tehát nem használják széles körben, mert nem nyomtatja ki a kivétel részletes leírását.

A toString() metódus használata

A toString() módszere a Dobható osztály felülírja a toString() az Object osztály metódusa. Kiírja a kivétel rövid leírását. Nem jeleníti meg a többi információt (például a kivétel nevét és a verem nyomkövetését). Nem széles körben használják a kivételüzenet kinyomtatására.

Használjuk a toString() metódust egy Java programban.

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

Futtassuk a fenti programot.

Különböző módok a kivételes üzenet nyomtatására Java nyelven

A fenti üzenetben azt látjuk, hogy csak a kivétel nevét és típusát írja ki. Nem jelzi, hogy melyik vonalon történt kivétel.

arp-a parancs

Láttuk a kivételüzenet kinyomtatásának különféle módjait Java nyelven. Javasoljuk, hogy használja a printStackTrace() módszert, mert arra a helyre mutat, ahol a kivétel előfordul.