logo

Eri tapoja tulostaa poikkeusviesti Javassa

Tässä osiossa opimme kuinka tulostaa poikkeusviestejä Javassa käyttämällä erilaisia ​​menetelmiä Java heitto luokkaa. Throwable-luokka tarjoaa seuraavat kolme tapaa tulostaa poikkeusviesti:

  • PrintStackTrace-menetelmän käyttäminen
  • Käytä getMessage()-menetelmää
  • ToString()-menetelmän käyttäminen
Eri tapoja tulostaa poikkeusviesti Javassa

Keskustellaan yksitellen yksityiskohtaisesti.

PrintStackTrace()-menetelmän käyttäminen

The printStackTrace() menetelmä on määritelty kohdassa Heitettävä luokka, joka kuuluu java.lang-pakettiin. Menetelmä tulostaa nimi, kuvaus (kuten / nollalla ), ja pinon jälki (rivin numero ja luokan nimi, jos poikkeus on esitetty) poikkeuksesta. Pinojäljitys jäljittää seuraavan poikkeuksen esiintymisen. Sitä käytetään laajalti poikkeusviestin tulostamiseen.

PrintStackTrace()-menetelmästä on kolme versiota:

python alustusluettelo
Syntaksi Kuvaus
printStackTrace() Menetelmä tulostaa tämän heitettävän ja sen paluujäljityksen normaaliin virhevirtaan.
public void printStackTrace (PrintStream s) Menetelmä tulostaa heitettävyyden ja sen takaisinjäljityksen määritettyyn tulostusvirtaan.
public void printStackTrace (PrintWriter s) Menetelmä tulostaa heitettävillä ja jäljittää sen takaisin määritettyyn tulostuskirjoittimeen.

Ymmärtääksemme printStackTrace()-menetelmän käsitteen luomme ensin a Java ohjelma, joka nosti nolla-jaon poikkeuksen. Tässä ohjelmassa emme käytä printStackTrace()-menetelmää poikkeuksen tulostamiseen.

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

Kun suoritamme yllä olevan ohjelman, saamme an aritmeettinen poikkeus ja seuraava viesti tulostuu konsoliin:

Eri tapoja tulostaa poikkeusviesti Javassa

Yllä olevassa viestissä emme voi osoittaa, mikä rivi heittää poikkeuksen. Joten on vaikea löytää poikkeuksia. Tämän ongelman ratkaisemiseksi käytämme printStackTrace()-menetelmää. Käytetään Java-ohjelmassa printStackTrace()-menetelmää.

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

Suoritetaan yllä oleva ohjelma.

Eri tapoja tulostaa poikkeusviesti Javassa

Yllä oleva poikkeussanoma osoittaa selvästi, mikä menetelmä on aiheuttanut poikkeuksen, minkä tyyppinen poikkeus on ja mikä rivi heittää poikkeuksen.

Viestin ensimmäinen rivi osoittaa, että ohjelma heittää a java.lang.ArithmeticException (jakaa nollalla). Toinen rivi osoittaa, että poikkeuksia esiintyy rivillä 9 ja metodi divide() heittää poikkeuksen. Kolmas rivi näyttää poikkeuksen rivillä kaksikymmentäyksi . Main()-metodi heittää myös poikkeuksen, koska divide()-metodia kutsutaan main()-metodin sisällä. Siksi käyttämällä printStackTrace() menetelmällä voimme helposti huomauttaa tarkka sijainti poikkeuksesta.

Käytä getMessage()-menetelmää

The getMessage() menetelmä on myös määritelty Heitettävä luokka, joka kuuluu java.lang-pakettiin. Menetelmä tulostaa vain poikkeuksen viestin. Se ei tulosta poikkeuksen nimeä eikä kuvausta. Sitä käytetään laajalti poikkeusviestin tulostamiseen.

Syntaksi:

 public String getMessage(); 

Se palauttaa tämän Throwable-instanssin yksityiskohtainen viestimerkkijono. Se voi olla tyhjä.

java-iteraattori kartalle

Käytetään Java-ohjelmassa getMessage()-metodia.

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

Suoritetaan yllä oleva ohjelma.

Eri tapoja tulostaa poikkeusviesti Javassa

Huomaamme, että se tulostaa vain poikkeuksen. Joten sitä ei käytetä laajalti, koska se ei tulosta poikkeuksen yksityiskohtaista kuvausta.

Käytä toString()-menetelmää

The toString() menetelmä Heitettävä luokka ohittaa toString() Object-luokan menetelmä. Se tulostaa poikkeuksen lyhyen kuvauksen. Se ei näytä muita tietoja (kuten poikkeuksen nimeä ja pinon jäljitystä). Sitä ei käytetä laajasti poikkeusviestin tulostamiseen.

on suhde

Käytetään toString()-metodia Java-ohjelmassa.

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

Suoritetaan yllä oleva ohjelma.

Eri tapoja tulostaa poikkeusviesti Javassa

Yllä olevassa viestissä huomaamme, että se tulostaa vain poikkeuksen nimen ja tyypin. Se ei osoita, millä linjalla poikkeus on tapahtunut.

Olemme nähneet erilaisia ​​tapoja tulostaa poikkeusviesti Javassa. Suosittelemme käyttämään printStackTrace() menetelmää, koska se osoittaa paikkaan, jossa poikkeus tapahtuu.