U ovom odjeljku naučit ćemo kako ispisati poruke o iznimkama u Javi korištenjem različitih metoda Java Throwable klasa . Klasa Throwable pruža sljedeće tri metode za ispis poruke o iznimci:
- Korištenje metode printStackTrace
- Korištenje metode getMessage().
- Korištenje metode toString().
Raspravljajmo jedan po jedan u detalje.
Korištenje metode printStackTrace().
The printStackTrace() metoda definiran je u Za bacanje klasa koja pripada java.lang paketu. Metoda ispisuje ime, opis (kao što je / za nulu ), i stack trace (broj retka i naziv klase gdje je pokrenuta iznimka) iznimke. Praćenje stoga prati gdje se pojavljuje sljedeći izuzetak. Često se koristi za ispis poruke o iznimci.
Postoje tri verzije printStackTrace() metode:
harald baldr
Sintaksa | Opis |
---|---|
printStackTrace() | Metoda ispisuje ovo bacanje i njegovo povratno praćenje u standardni tok pogrešaka. |
public void printStackTrace(PrintStream s) | Metoda ispisuje throwable i njegov povratni trag u navedeni tok ispisa. |
public void printStackTrace(PrintWriter s) | Metoda ispisuje throwable i njegov povratni trag do navedenog pisača ispisa. |
Da bismo razumjeli koncept printStackTrace() metode, prvo ćemo kreirati Java program koji je podigao iznimku dijeljenja s nulom. U ovom programu nećemo koristiti metodu printStackTrace() za ispis iznimke.
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(); } }
Kada pokrenemo gornji program, dobivamo aritmetička iznimka a na konzoli se ispisuje sljedeća poruka:
U gornjoj poruci ne možemo istaknuti koji redak izbacuje iznimku. Dakle, teško je pronaći gdje se pojavljuju izuzeci. Da bismo prevladali ovaj problem koristimo metodu printStackTrace(). Upotrijebimo metodu printStackTrace() u Java programu.
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(); } }
Pokrenimo gornji program.
Gornja poruka o iznimci jasno pokazuje koja je metoda pokrenula iznimku, koja je vrsta iznimke i koja linija izbacuje iznimku.
Prvi redak poruke pokazuje da program izbacuje a java.lang.ArithmeticException (podijeliti s nulom). Drugi red pokazuje da se iznimke javljaju u redu 9 a metoda divide() baca iznimku. Treći red prikazuje tu iznimku u redu dvadeset i jedan . Metoda main() također izbacuje iznimku jer se metoda divide() poziva unutar metode main(). Stoga, korištenjem printStackTrace() metoda, lako možemo istaknuti točna lokacija iznimke.
java korisnički unos
Korištenje metode getMessage().
The getMessage() metoda je također definirana u Za bacanje klasa koja pripada java.lang paketu. Metoda ispisuje samo poruku iznimke. Ne ispisuje niti naziv iznimke niti opis. Često se koristi za ispis poruke o iznimci.
Sintaksa:
public String getMessage();
Vraća niz detaljnih poruka ove Throwable instance. Može biti nula.
Upotrijebimo metodu getMessage() u Java programu.
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); } } }
Pokrenimo gornji program.
Primjećujemo da ispisuje samo izuzetak. Dakle, nije široko korišten jer ne ispisuje detaljan opis iznimke.
Korištenje metode toString().
The toString() metoda Za bacanje klasa nadjačava toString() metoda klase Object. Ispisuje kratki opis iznimke. Ne prikazuje druge informacije (kao što je naziv izuzetka i praćenje hrpe). Ne koristi se široko za ispis poruke o iznimci.
Upotrijebimo metodu toString() u Java programu.
PrintExceptionMessage4.java
vrste for petlje
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); } } }
Pokrenimo gornji program.
U gornjoj poruci primijetili smo da ispisuje samo naziv i vrstu iznimke. Ne ističe u kojem je retku došlo do iznimke.
Vidjeli smo različite načine ispisa poruke o iznimci u Javi. Predlažemo da koristite printStackTrace() jer ukazuje na mjesto gdje se pojavljuje iznimka.