logo

Dažādi veidi, kā drukāt izņēmuma ziņojumu Java

Šajā sadaļā mēs uzzināsim kā drukāt izņēmumu ziņojumus Java izmantojot dažādas metodes Java izmetams klase . Izņēmuma ziņojuma drukāšanai klase Throwable nodrošina šādas trīs metodes:

  • Izmantojot metodi printStackTrace
  • GetMessage() metodes izmantošana
  • Izmantojot toString() metodi
Dažādi veidi, kā drukāt izņēmuma ziņojumu Java

Apspriedīsimies pa vienam sīkāk.

Izmantojot metodi printStackTrace()

The printStackTrace() metodi ir definēts Metams klase, kas pieder pakotnei java.lang. Metode izdrukā nosaukums, apraksts (piemēram, / par nulli ), un kaudzes pēdas (rindas numurs un klases nosaukums, ja ir izņēmums) par izņēmumu. Steka izsekošana izseko, kur notiek nākamais izņēmums. To plaši izmanto, lai drukātu izņēmuma ziņojumu.

Ir trīs metodes printStackTrace() versijas:

java kolekciju ietvars
Sintakse Apraksts
printStackTrace() Metode izdrukā šo izmetamo un tā atpakaļsekošanu standarta kļūdu straumē.
public Void printStackTrace (PrintStream s) Metode drukā izmetamās un tās atpakaļsekošanas līdz norādītajai drukas straumei.
public Void printStackTrace (PrintWriter s) Metode izdrukā izmetami un tās atpakaļsekošanu uz norādīto drukas rakstītāju.

Lai saprastu metodes printStackTrace() jēdzienu, vispirms mēs izveidosim a Java programma, kas izvirzīja dalīt ar nulli izņēmumu. Šajā programmā mēs neizmantosim metodi printStackTrace(), lai izdrukātu izņēmumu.

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

Palaižot iepriekš minēto programmu, mēs iegūstam an aritmētiskais izņēmums un konsolē tiek izdrukāts šāds ziņojums:

Dažādi veidi, kā drukāt izņēmuma ziņojumu Java

Iepriekš minētajā ziņojumā mēs nevaram norādīt, kura rinda rada izņēmumu. Tāpēc ir grūti atrast izņēmumus. Lai novērstu šo problēmu, mēs izmantojam metodi printStackTrace(). Izmantosim metodi printStackTrace() Java programmā.

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

Palaidīsim iepriekš minēto programmu.

execvp
Dažādi veidi, kā drukāt izņēmuma ziņojumu Java

Iepriekš minētais izņēmuma ziņojums skaidri parāda, kura metode ir radījusi izņēmumu, kāda veida izņēmums ir un kura rinda rada izņēmumu.

Ziņojuma pirmajā rindā redzams, ka programma izmet a java.lang.ArithmeticException (dalīt ar nulli). Otrā rinda parāda, ka rindā notiek izņēmumi 9 un metode divide() rada izņēmumu. Trešā rinda parāda šo izņēmumu rindā divdesmitviens . Main() metode arī rada izņēmumu, jo metode divide () tiek izsaukta main() metodes iekšpusē. Tādējādi, izmantojot printStackTrace() metodi, mēs varam viegli norādīt precīza atrašanās vieta izņēmuma gadījumā.

GetMessage() metodes izmantošana

The getMessage() metode ir definēta arī Metams klase, kas pieder pakotnei java.lang. Metode izdrukā tikai izņēmuma ziņojumu. Tas nedrukā ne izņēmuma nosaukumu, ne aprakstu. To plaši izmanto, lai drukātu izņēmuma ziņojumu.

Sintakse:

 public String getMessage(); 

Tas atgriež šīs Throwable instances detalizēto ziņojumu virkni. Tas var būt nulle.

Java programmā izmantosim metodi getMessage().

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

Palaidīsim iepriekš minēto programmu.

derīgi identifikatori java
Dažādi veidi, kā drukāt izņēmuma ziņojumu Java

Mēs novērojam, ka tas drukā tikai izņēmumu. Tātad tas netiek plaši izmantots, jo nedrukā detalizētu izņēmuma aprakstu.

Izmantojot toString() metodi

The toString() metode Metams klase ignorē toString() Objektu klases metode. Tas izdrukā īsu izņēmuma aprakstu. Tajā netiek rādīta cita informācija (piemēram, izņēmuma nosaukums un steka izsekošana). To plaši neizmanto, lai drukātu izņēmuma ziņojumu.

Izmantosim metodi toString() Java programmā.

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

Palaidīsim iepriekš minēto programmu.

Dažādi veidi, kā drukāt izņēmuma ziņojumu Java

Iepriekš minētajā ziņojumā mēs novērojam, ka tas drukā tikai izņēmuma nosaukumu un veidu. Tajā nav norādīts, kurā līnijā ir noticis izņēmums.

Mēs esam redzējuši dažādus veidus, kā drukāt izņēmuma ziņojumu Java. Mēs iesakām izmantot printStackTrace() metodi, jo tā norāda uz vietu, kur notiek izņēmums.