Šiame skyriuje mes išmoksime kaip spausdinti išimčių pranešimus Java naudojant skirtingus metodus Java metamas klasė . „Throwable“ klasėje pateikiami trys išimties pranešimo spausdinimo būdai:
- Naudojant printStackTrace metodą
- Naudojant getMessage() metodą
- Naudojant toString() metodą
Išsamiai aptarkime po vieną.
Naudojant printStackTrace() metodą
The printStackTrace() metodas yra apibrėžtas Metamas klasė, kuri priklauso java.lang paketui. Metodas spausdina pavadinimas, aprašymas (toks kaip / nuliu ), ir kamino pėdsakas (eilutės numeris ir klasės pavadinimas, kai iškelta išimtis) išimtį. Krūvos pėdsakas nurodo, kur atsiranda kita išimtis. Jis plačiai naudojamas išimties pranešimui spausdinti.
Yra trys printStackTrace() metodo versijos:
žaidimas balandis android
Sintaksė | apibūdinimas |
---|---|
printStackTrace() | Metodas atspausdina šį išmetimą ir jo atsekimą į standartinį klaidų srautą. |
public void printStackTrace (PrintStream s) | Metodas spausdina išmetamą ir jo atgalinį sekimą į nurodytą spausdinimo srautą. |
viešoji galia „printStackTrace“ („PrintWriter“) | Metodas spausdina išmesti ir atsekti į nurodytą spausdinimo įrenginį. |
Norėdami suprasti printStackTrace() metodo koncepciją, pirmiausia sukursime a Java programa, kuri padidino padalijimo iš nulio išimtį. Šioje programoje nenaudosime metodo printStackTrace() išimčiai spausdinti.
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(); } }
Kai paleidžiame aukščiau pateiktą programą, gauname an aritmetinė išimtis ir konsolėje išspausdinamas šis pranešimas:
Aukščiau pateiktame pranešime negalime nurodyti, kurioje eilutėje yra išimtis. Taigi sunku rasti išimčių. Norėdami išspręsti šią problemą, naudojame metodą printStackTrace(). Java programoje panaudokime metodą printStackTrace().
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(); } }
Paleiskite aukščiau pateiktą programą.
Aukščiau pateiktas išimties pranešimas aiškiai parodo, kuris metodas iškėlė išimtį, kokio tipo išimtis ir kuri eilutė pateikia išimtį.
Pirmoji pranešimo eilutė rodo, kad programa išmeta a java.lang.ArithmeticException (padalinkite iš nulio). Antroji eilutė rodo, kad eilutėje atsiranda išimčių 9 o metodas divide() meta išimtį. Trečioje eilutėje rodoma ta išimtis eilutėje dvidešimt vienas . Pagrindinis () metodas taip pat išmeta išimtį, nes metodas divide () vadinamas main () metodo viduje. Taigi, naudojant printStackTrace() metodą, galime lengvai nurodyti tiksli vieta išimtis.
Naudojant getMessage() metodą
The getMessage() metodas taip pat apibrėžtas Metamas klasė, kuri priklauso java.lang paketui. Metodas spausdina tik išimties pranešimą. Nespausdinamas nei išimties pavadinimas, nei aprašymas. Jis plačiai naudojamas spausdinti išimties pranešimą.
Sintaksė:
public String getMessage();
Tai grąžina šio Throwable egzemplioriaus išsamių pranešimų eilutę. Tai gali būti niekinė.
Huffman kodavimo kodas
Naudokime getMessage() metodą Java programoje.
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); } } }
Paleiskite aukščiau pateiktą programą.
Pastebime, kad spausdinama tik išimtis. Taigi, jis nėra plačiai naudojamas, nes nespausdina išsamaus išimties aprašymo.
Naudojant toString() metodą
The toString() metodas Metamas klasė viršija toString() Objektų klasės metodas. Išspausdinamas trumpas išimties aprašymas. Ji nerodo kitos informacijos (pvz., išimties pavadinimo ir dėklo sekimo). Jis nėra plačiai naudojamas išimties pranešimui spausdinti.
html žymes
Naudokime metodą toString() Java programoje.
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); } } }
Paleiskite aukščiau pateiktą programą.
Aukščiau pateiktame pranešime pastebime, kad jis spausdina tik išimties pavadinimą ir tipą. Jame nenurodoma, kurioje eilutėje įvyko išimtis.
Mes matėme skirtingus būdus, kaip spausdinti išimties pranešimą Java. Siūlome naudoti printStackTrace() metodas, nes jis nurodo vietą, kurioje įvyksta išimtis.