logo

Ulike måter å skrive ut unntaksmelding på i Java

I denne delen vil vi lære hvordan du skriver ut unntaksmeldinger i Java ved å bruke forskjellige metoder for Java-kastbar klasse . Throwable-klassen gir følgende tre metoder for å skrive ut unntaksmeldingen:

  • Bruker printStackTrace-metoden
  • Bruke getMessage()-metoden
  • Bruke toString()-metoden
Ulike måter å skrive ut unntaksmelding på i Java

La oss diskutere en etter en i detalj.

Ved å bruke printStackTrace()-metoden

De printStackTrace() metode er definert i Kastbar klasse som tilhører java.lang-pakken. Metoden skriver ut navn, beskrivelse (som for eksempel / med null ), og stabelsporing (linjenummer og klassenavn der unntak oppstår) av et unntak. Stabelsporingen sporer hvor det neste unntaket inntreffer. Det er mye brukt for å skrive ut unntaksmeldingen.

Det er tre versjoner av printStackTrace()-metoden:

len av streng i java
Syntaks Beskrivelse
printStackTrace() Metoden skriver ut denne kastbare og dens tilbakesporing til standard feilstrøm.
public void printStackTrace(PrintStream s) Metoden skriver ut kastbare og dens tilbakesporing til den angitte utskriftsstrømmen.
public void printStackTrace(PrintWriter s) Metoden skriver ut kastbare og dens tilbakesporing til den angitte utskriftsforfatteren.

For å forstå konseptet med printStackTrace()-metoden, vil vi først lage en Java program som hevet et unntak med deling på null. I dette programmet vil vi ikke bruke metoden printStackTrace() for å skrive ut unntaket.

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 kjører programmet ovenfor, får vi en aritmetisk unntak og følgende melding skrives ut på konsollen:

Ulike måter å skrive ut unntaksmelding på i Java

I meldingen ovenfor kan vi ikke peke ut hvilken linje som kaster et unntak. Så det er vanskelig å finne hvor unntak forekommer. For å løse dette problemet bruker vi printStackTrace()-metoden. La oss bruke printStackTrace()-metoden i et Java-program.

PrintExceptionMessage2.java

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

La oss kjøre programmet ovenfor.

Ulike måter å skrive ut unntaksmelding på i Java

Unntaksmeldingen ovenfor viser tydelig hvilken metode som har reist et unntak, hvilken type unntak er, og hvilken linje som kaster et unntak.

Den første linjen i meldingen viser at programmet kaster en java.lang.ArithmeticException (dele på null). Den andre linjen viser at unntak forekommer ved linjen 9 og metoden divide() kaster et unntak. Den tredje linjen viser unntaket ved linjen tjueen . Main()-metoden gir også et unntak fordi divide()-metoden kalles inne i main()-metoden. Derfor bruker du printStackTrace() metoden kan vi enkelt peke på nøyaktig posisjon av unntaket.

Bruke getMessage()-metoden

De getMessage() metoden er også definert i Kastbar klasse som tilhører java.lang-pakken. Metoden skriver bare ut meldingen om et unntak. Den skriver verken navnet på unntaket eller beskrivelsen. Det er mye brukt for å skrive ut unntaksmeldingen.

Syntaks:

 public String getMessage(); 

Den returnerer detaljmeldingsstrengen for denne Throwable-forekomsten. Det kan være null.

La oss bruke getMessage()-metoden 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); } } } 

La oss kjøre programmet ovenfor.

Ulike måter å skrive ut unntaksmelding på i Java

Vi observerer at den kun skriver ut unntaket. Så det er ikke mye brukt fordi det ikke skriver ut den detaljerte beskrivelsen av et unntak.

Bruke toString()-metoden

De toString() metoden for Kastbar klasse overstyrer toString() metoden til Object-klassen. Den skriver ut den korte beskrivelsen av et unntak. Den viser ikke annen informasjon (som unntaksnavn og stabelsporing). Det er ikke mye brukt for å skrive ut unntaksmeldingen.

La oss bruke 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); } } } 

La oss kjøre programmet ovenfor.

Ulike måter å skrive ut unntaksmelding på i Java

I meldingen ovenfor ser vi at den bare skriver ut navnet og typen av unntaket. Den viser ikke til hvilket linjeunntak som har skjedd.

huffman-kodekode

Vi har sett de forskjellige måtene å skrive ut unntaksmeldingen i Java. Vi foreslår at du bruker printStackTrace() metode fordi den peker til stedet der et unntak oppstår.