logo

Různé způsoby tisku zprávy o výjimce v Javě

V této části se naučíme jak tisknout zprávy o výjimkách v Javě pomocí různých metod Java Throwable třída . Třída Throwable poskytuje následující tři způsoby tisku zprávy o výjimce:

  • Použití metody printStackTrace
  • Použití metody getMessage().
  • Použití metody toString().
Různé způsoby tisku zprávy o výjimce v Javě

Pojďme diskutovat jeden po druhém podrobně.

Použití metody printStackTrace().

The printStackTrace() metoda je definován v Vhazovatelné třída, která patří do balíčku java.lang. Metoda vytiskne jméno, popis (jako / nulou ), a trasování zásobníku (číslo řádku a název třídy, kde byla vyvolána výjimka) výjimky. Trasování zásobníku sleduje, kde dojde k další výjimce. Je široce používán pro tisk zprávy o výjimce.

Existují tři verze metody printStackTrace():

celé číslo na řetězec
Syntax Popis
printStackTrace() Metoda vytiskne toto vrhatelné a jeho zpětné sledování do standardního chybového proudu.
public void printStackTrace (PrintStream s) Metoda vytiskne throwable a jeho zpětné sledování do zadaného tiskového proudu.
public void printStackTrace (PrintWriter s) Metoda vytiskne throwable a jeho zpětné sledování do zadaného tiskového zapisovače.

Abychom porozuměli konceptu metody printStackTrace(), nejprve vytvoříme a Jáva program, který zvýšil výjimku dělení nulou. V tomto programu nepoužijeme k vytištění výjimky metodu printStackTrace().

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

Když spustíme výše uvedený program, dostaneme an aritmetická výjimka a na konzole se vytiskne následující zpráva:

Různé způsoby tisku zprávy o výjimce v Javě

Ve výše uvedené zprávě nemůžeme poukázat na to, který řádek vyvolá výjimku. Je tedy těžké najít, kde se vyskytují výjimky. K překonání tohoto problému používáme metodu printStackTrace(). Použijme metodu printStackTrace() v programu 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(); } } 

Spusťte výše uvedený program.

salman khan khan věk
Různé způsoby tisku zprávy o výjimce v Javě

Výše uvedená zpráva o výjimce jasně ukazuje, která metoda vyvolala výjimku, který typ výjimky je a který řádek výjimku vyvolá.

První řádek zprávy ukazuje, že program vyvolá a java.lang.ArithmeticException (dělte nulou). Druhý řádek ukazuje, že na řádku dochází k výjimkám 9 a metoda division() vyvolá výjimku. Třetí řádek ukazuje tuto výjimku na řádku dvacet jedna . Metoda main() také vyvolá výjimku, protože metoda division() je volána uvnitř metody main(). Proto pomocí printStackTrace() metoda, můžeme snadno poukázat na přesná poloha z výjimky.

Použití metody getMessage().

The getMessage() metoda je také definována v Vhazovatelný třída, která patří do balíčku java.lang. Metoda vytiskne pouze zprávu o výjimce. Nevytiskne ani název výjimky, ani popis. Je široce používán pro tisk zprávy o výjimce.

Syntax:

 public String getMessage(); 

Vrátí řetězec podrobných zpráv této instance Throwable. Může být nulový.

Použijme metodu getMessage() v programu 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); } } } 

Spusťte výše uvedený program.

if-else java
Různé způsoby tisku zprávy o výjimce v Javě

Pozorujeme, že tiskne pouze výjimku. Není tedy široce používán, protože netiskne podrobný popis výjimky.

Použití metody toString().

The toString() metoda Vhazovatelný třída přepíše toString() metoda třídy Object. Vypíše krátký popis výjimky. Nezobrazuje ostatní informace (jako je název výjimky a trasování zásobníku). Není široce používán k tisku zprávy o výjimce.

Použijme metodu toString() v programu 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); } } } 

Spusťte výše uvedený program.

Různé způsoby tisku zprávy o výjimce v Javě

Ve výše uvedené zprávě vidíme, že tiskne pouze název a typ výjimky. Neuvádí, na kterém řádku došlo k výjimce.

Viděli jsme různé způsoby tisku zprávy o výjimce v Javě. Doporučujeme vám použít printStackTrace() protože ukazuje na místo, kde se vyskytuje výjimka.