V tejto časti sa naučíme ako vytlačiť správy o výnimkách v jazyku Java pomocou rôznych metód Java Throwable trieda . Trieda Throwable poskytuje nasledujúce tri metódy na vytlačenie správy o výnimke:
- Použitie metódy printStackTrace
- Použitie metódy getMessage().
- Použitie metódy toString().
Poďme diskutovať jeden po druhom podrobne.
Použitie metódy printStackTrace().
The printStackTrace() metóda je definovaný v Vhadzovateľné trieda, ktorá patrí do balíka java.lang. Metóda vytlačí súbor meno, popis (ako napr / nulou ), a stopa zásobníka (číslo riadku a názov triedy, kde sa vyvolala výnimka) výnimky. Sledovanie zásobníka sleduje, kde nastane ďalšia výnimka. Je široko používaný na tlač správy o výnimke.
Existujú tri verzie metódy printStackTrace():
rímske čísla 1 až 100
Syntax | Popis |
---|---|
printStackTrace() | Metóda vytlačí tento vrhateľný a jeho spätný záznam do štandardného chybového prúdu. |
public void printStackTrace (PrintStream s) | Metóda vytlačí vrhateľné a jeho spätné sledovanie do zadaného tlačového prúdu. |
public void printStackTrace (PrintWriter s) | Metóda vytlačí vrhateľné a jeho spätné sledovanie do určeného zapisovača tlače. |
Aby sme pochopili koncept metódy printStackTrace(), najprv vytvoríme a Java program, ktorý zvýšil výnimku delenia nulou. V tomto programe nepoužijeme metódu printStackTrace() na vytlačenie výnimky.
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(); } }
Keď spustíme vyššie uvedený program, dostaneme an aritmetická výnimka a na konzole sa vytlačí nasledujúca správa:
Vo vyššie uvedenej správe nemôžeme poukázať na to, ktorý riadok vyvoláva výnimku. Je teda ťažké nájsť, kde sa vyskytujú výnimky. Na prekonanie tohto problému používame metódu printStackTrace(). Použime metódu printStackTrace() v programe Java.
PrintExceptionMessage2.java
struny v c
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(); } }
Spustíme vyššie uvedený program.
Vyššie uvedená správa o výnimke jasne ukazuje, ktorá metóda vyvolala výnimku, ktorý typ výnimky je a ktorý riadok vyvoláva výnimku.
Prvý riadok správy ukazuje, že program vyhodí a java.lang.ArithmeticException (deľte nulou). Druhý riadok ukazuje, že na riadku sa vyskytujú výnimky 9 a metóda division() vyvolá výnimku. Tretí riadok zobrazuje túto výnimku v riadku dvadsaťjeden . Metóda main() tiež vyvolá výnimku, pretože metóda division() sa volá v rámci metódy main(). Preto pomocou printStackTrace() metóda, môžeme ľahko poukázať na presné umiestnenie z výnimky.
Použitie metódy getMessage().
The getMessage() metóda je tiež definovaná v Vhadzovateľné trieda, ktorá patrí do balíka java.lang. Metóda vytlačí iba správu o výnimke. Nevytlačí názov výnimky ani popis. Je široko používaný na tlač správy o výnimke.
Syntax:
public String getMessage();
Vráti reťazec podrobnej správy tejto inštancie Throwable. Môže byť nulový.
Použime metódu getMessage() v programe 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); } } }
Spustíme vyššie uvedený program.
Pozorujeme, že tlačí len výnimku. Nie je teda široko používaný, pretože netlačí podrobný popis výnimky.
Použitie metódy toString().
The natiahnuť() metóda Vhadzovateľné trieda má prednosť natiahnuť() metóda triedy Object. Vytlačí krátky popis výnimky. Nezobrazuje ostatné informácie (napríklad názov výnimky a sledovanie zásobníka). Nie je široko používaný na tlač správy o výnimke.
Použime metódu toString() v programe 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); } } }
Spustíme vyššie uvedený program.
Vo vyššie uvedenej správe vidíme, že vypíše iba názov a typ výnimky. Neuvádza, na ktorom riadku nastala výnimka.
java int do char
Videli sme rôzne spôsoby tlače správy o výnimke v jazyku Java. Odporúčame vám použiť printStackTrace() pretože ukazuje na miesto, kde sa vyskytuje výnimka.