logo

Forskellige måder at udskrive undtagelsesmeddelelse på i Java

I dette afsnit vil vi lære hvordan man udskriver undtagelsesmeddelelser i Java ved at bruge forskellige metoder Java-kastbar klasse. Throwable-klassen giver følgende tre metoder til at udskrive undtagelsesmeddelelsen:

  • Brug af printStackTrace-metoden
  • Brug af getMessage() metoden
  • Brug af toString()-metoden
Forskellige måder at udskrive undtagelsesmeddelelse på i Java

Lad os diskutere en efter en i detaljer.

Brug af metoden printStackTrace()

Det printStackTrace() metode er defineret i Kan kastes klasse, der hører til java.lang-pakken. Metoden udskriver navn, beskrivelse (såsom / med nul ), og stak spor (linjenummer og klassenavn, hvor undtagelsen er rejst) af en undtagelse. Staksporingen sporer, hvor den næste undtagelse opstår. Det er meget brugt til at udskrive undtagelsesmeddelelsen.

Der er tre versioner af printStackTrace()-metoden:

len af ​​streng i java
Syntaks Beskrivelse
printStackTrace() Metoden udskriver denne smidbare og dens tilbagesporing til standardfejlstrømmen.
public void printStackTrace(PrintStream s) Metoden udskriver smidbare og dens tilbagesporing til den angivne printstrøm.
public void printStackTrace(PrintWriter s) Metoden udskriver smidbare og dens tilbagesporing til den angivne trykskriver.

For at forstå konceptet med printStackTrace()-metoden, vil vi først oprette en Java program, der hævede en divider med nul undtagelse. I dette program vil vi ikke bruge metoden printStackTrace() til at udskrive undtagelsen.

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

Når vi kører ovenstående program, får vi en aritmetisk undtagelse og følgende meddelelse udskrives på konsollen:

Forskellige måder at udskrive undtagelsesmeddelelse på i Java

I ovenstående meddelelse kan vi ikke påpege, hvilken linje der kaster en undtagelse. Så det er svært at finde ud af, hvor der forekommer undtagelser. For at løse dette problem bruger vi printStackTrace() metoden. Lad os bruge metoden printStackTrace() i et Java-program.

PrintExceptionMessage2.java

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

Lad os køre ovenstående program.

Forskellige måder at udskrive undtagelsesmeddelelse på i Java

Ovenstående undtagelsesmeddelelse viser tydeligt, hvilken metode der har rejst en undtagelse, hvilken type undtagelse er, og hvilken linje der kaster en undtagelse.

Den første linje i meddelelsen viser, at programmet kaster en java.lang.ArithmeticException (divider med nul). Den anden linje viser, at undtagelser forekommer ved linjen 9 og metoden divide() kaster en undtagelse. Den tredje linje viser denne undtagelse ved linje enogtyve . Main()-metoden giver også en undtagelse, fordi divide()-metoden kaldes inde i main()-metoden. Derfor bruger man printStackTrace() metode, kan vi nemt pege på nøjagtige placering af undtagelsen.

Brug af getMessage() metoden

Det getMessage() metode er også defineret i Kan kastes klasse, der hører til java.lang-pakken. Metoden udskriver kun beskeden om en undtagelse. Den udskriver hverken navnet på undtagelsen eller beskrivelsen. Det er meget brugt til at udskrive undtagelsesmeddelelsen.

Syntaks:

 public String getMessage(); 

Det returnerer detaljemeddelelsesstrengen for denne Throwable-instans. Det kan være nul.

Lad os bruge metoden getMessage() i et Java-program.

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

Lad os køre ovenstående program.

Forskellige måder at udskrive undtagelsesmeddelelse på i Java

Vi bemærker, at den kun udskriver undtagelsen. Så det er ikke meget brugt, fordi det ikke udskriver den detaljerede beskrivelse af en undtagelse.

Brug af toString()-metoden

Det toString() metoden til Kan kastes klasse tilsidesætter toString() metoden i klassen Object. Den udskriver den korte beskrivelse af en undtagelse. Den viser ikke de øvrige oplysninger (såsom undtagelsesnavn og staksporing). Det er ikke meget brugt til at udskrive undtagelsesmeddelelsen.

Lad os bruge toString()-metoden i et Java-program.

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

Lad os køre ovenstående program.

Forskellige måder at udskrive undtagelsesmeddelelse på i Java

I ovenstående meddelelse bemærker vi, at den kun udskriver navnet og typen af ​​undtagelsen. Den angiver ikke, ved hvilken linjeundtagelse der er sket.

omvendt streng i java

Vi har set de forskellige måder at udskrive undtagelsesmeddelelsen på i Java. Vi foreslår, at du bruger printStackTrace() metode, fordi den peger på det sted, hvor en undtagelse opstår.