logo

Verschillende manieren om uitzonderingsberichten af ​​te drukken in Java

In dit gedeelte zullen we leren hoe uitzonderingsberichten in Java kunnen worden afgedrukt door gebruik te maken van verschillende methoden van de Java-werpbaar klas . De klasse Throwable biedt de volgende drie methoden om het uitzonderingsbericht af te drukken:

  • Met behulp van de printStackTrace-methode
  • Methode getMessage() gebruiken
  • Met behulp van de toString()-methode
Verschillende manieren om uitzonderingsberichten af ​​te drukken in Java

Laten we één voor één in detail bespreken.

Met behulp van de printStackTrace()-methode

De printStackTrace() methode wordt gedefinieerd in de Gooibaar klasse die bij het pakket java.lang hoort. De methode drukt de naam, beschrijving (zoals / met nul ), en de stapeltracering (regelnummer en klassenaam waar een uitzondering is gemaakt) van een uitzondering. De stacktracering traceert waar de volgende uitzondering optreedt. Het wordt veel gebruikt om het uitzonderingsbericht af te drukken.

Er zijn drie versies van de printStackTrace() -methode:

java-waarde van enum
Syntaxis Beschrijving
printStackTrace() De methode drukt deze throwable en zijn backtrace af naar de standaardfoutstroom.
public void printStackTrace(PrintStream s) De methode drukt throwable en zijn backtrace af naar de opgegeven printstream.
public void printStackTrace(PrintWriter s) De methode drukt throwable en zijn backtrace af naar de opgegeven printschrijver.

Om het concept van de printStackTrace() -methode te begrijpen, zullen we eerst een Java programma dat een uitzonderingsgraad van nul opleverde. In dit programma zullen we de methode printStackTrace() niet gebruiken om de uitzondering af te drukken.

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

Wanneer we het bovenstaande programma uitvoeren, krijgen we een rekenkundige uitzondering en het volgende bericht wordt afgedrukt op de console:

Verschillende manieren om uitzonderingsberichten af ​​te drukken in Java

In het bovenstaande bericht kunnen we niet aangeven welke regel een uitzondering genereert. Het is dus moeilijk te achterhalen waar uitzonderingen voorkomen. Om dit probleem te verhelpen gebruiken we de printStackTrace() methode. Laten we de methode printStackTrace() gebruiken in een Java-programma.

PrintExceptionMessage2.java

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

Laten we het bovenstaande programma uitvoeren.

Verschillende manieren om uitzonderingsberichten af ​​te drukken in Java

Het bovenstaande uitzonderingsbericht laat duidelijk zien welke methode een uitzondering heeft gegenereerd, welk type uitzondering er is en welke regel een uitzondering genereert.

De eerste regel van het bericht laat zien dat het programma een java.lang.ArithmeticException (gedeeld door nul). De tweede regel laat zien dat uitzonderingen op regel voorkomen 9 en de methode verdeel() genereert een uitzondering. De derde regel toont die uitzondering op regel eenentwintig . De methode main() genereert ook een uitzondering omdat de methode verdeel() binnen de methode main() wordt aangeroepen. Daarom wordt gebruik gemaakt van de printStackTrace() methode kunnen we gemakkelijk wijzen op de exacte locatie van de uitzondering.

Methode getMessage() gebruiken

De ontvang bericht() methode is ook gedefinieerd in de Gooibaar klasse die bij het pakket java.lang hoort. De methode drukt alleen het bericht van een uitzondering af. Er wordt noch de naam van de uitzondering, noch de beschrijving afgedrukt. Het wordt veel gebruikt om het uitzonderingsbericht af te drukken.

Syntaxis:

 public String getMessage(); 

Het retourneert de detailberichtreeks van deze Throwable-instantie. Het kan nul zijn.

Laten we de methode getMessage() gebruiken in een Java-programma.

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

Laten we het bovenstaande programma uitvoeren.

Verschillende manieren om uitzonderingsberichten af ​​te drukken in Java

We zien dat alleen de uitzondering wordt afgedrukt. Het wordt dus niet veel gebruikt omdat het niet de gedetailleerde beschrijving van een uitzondering weergeeft.

Met behulp van de toString()-methode

De toString() werkwijze van de Gooibaar klasse overschrijft de toString() methode van de Object-klasse. Het drukt de korte beschrijving van een uitzondering af. De andere informatie (zoals uitzonderingsnaam en stacktrace) wordt niet weergegeven. Het wordt niet veel gebruikt om het uitzonderingsbericht af te drukken.

Laten we de methode toString() gebruiken in een Java-programma.

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

Laten we het bovenstaande programma uitvoeren.

Verschillende manieren om uitzonderingsberichten af ​​te drukken in Java

In het bovenstaande bericht zien we dat alleen de naam en het type van de uitzondering worden afgedrukt. Er wordt niet aangegeven op welke regeluitzondering zich heeft voorgedaan.

css vetgedrukte tekst

We hebben de verschillende manieren gezien om het uitzonderingsbericht in Java af te drukken. Wij raden u aan om de printStackTrace() methode omdat deze verwijst naar de locatie waar een uitzondering optreedt.