Javalla ketjutetut poikkeukset

Javalla ketjutetut poikkeukset

Javan ketjutetut poikkeukset mahdollistavat yhden poikkeuksen yhdistämisen toiseen, eli yksi poikkeus kuvaa toisen poikkeuksen syytä.

  • Tarkastellaan esimerkiksi tilannetta, jossa menetelmä heittää an Aritmeettinen poikkeus nollalla jakamisyrityksen takia.
  • Mutta virheen perimmäinen syy oli I/O-virhe, joka aiheutti jakajan olevan nolla.
  • Tällaisissa tapauksissa ketjutetut poikkeukset auttavat levittämään sekä virheen ensisijaisia ​​että taustalla olevia syitä.

Esimerkki : Seuraava esimerkki osoittaa kuinka ketjutettuja poikkeuksia käytetään Javassa.

Java
   // Working of chained exceptions   public     class   Geeks     {      public     static     void     main  (  String  []     args  )     {      try     {          // Creating an exception      NumberFormatException     ex     =     new     NumberFormatException  (  'Primary Exception'  );      // Setting the cause of the exception      ex  .  initCause  (  new     NullPointerException  (  'Root cause of the exception'  ));      // Throwing the exception with a cause      throw     ex  ;      }         catch     (  NumberFormatException     ex  )     {          // Displaying the primary exception      System  .  out  .  println  (  'Caught Exception: '     +     ex  );      // Displaying the root cause of the exception      System  .  out  .  println  (  'Cause of Exception: '     +     ex  .  getCause  ());      }      }   }   

Lähtö
Caught Exception: java.lang.NumberFormatException: Primary Exception Cause of Exception: java.lang.NullPointerException: Root cause of the exception  

Huomautus: Ketjutetut poikkeukset, joita kutsutaan myös sisäkkäisiksi poikkeuksiksi, antavat meille mahdollisuuden yhdistää syyn poikkeukseen Javassa. Tämä on hyödyllistä, kun haluamme levittää tietoa poikkeuksen alkuperäisestä syystä.

Rakentajat

  • Heitettävä (heitettävä syy) : Missä syy on poikkeus, joka aiheuttaa nykyisen poikkeuksen.
  • Heitettävä (merkkijonoviesti Heitettävä syy) : Missä msg on poikkeusviesti ja syy on poikkeus, joka aiheuttaa nykyisen poikkeuksen.

Menetelmät heitettävien tukiketjujen poikkeuksiin

  1. getCause() : Tämä menetelmä palauttaa poikkeuksen todellisen syyn.
  2. initCause (heitettävä syy) : Tämä menetelmä määrittää kutsupoikkeuksen syyn.

Esimerkki: Mukautetun viestin käyttäminen ketjutetuilla poikkeuksilla

Javassa voimme ketjuttaa poikkeuksia käyttämällä Throwable-luokan konstruktoria.

Java
   // Use a custom message with chained exception   public     class   Geeks     {      public     static     void     main  (  String  []     args  )     {      try     {          // Code that might throw an exception      int  []     n     =     new     int  [  5  ]  ;      int     divisor     =     0  ;      for     (  int     i     =     0  ;     i      <     n  .  length  ;     i  ++  )     {      int     res     =     n  [  i  ]     /     divisor  ;      System  .  out  .  println  (  res  );      }      }         catch     (  ArithmeticException     e  )     {          // Creating a new exception with       // the original as the cause      throw     new     RuntimeException      (  'Error: Division by zero occurred'       e  );      }      }   }   

Lähtö:

Lähtö

Selitys: Tässä esimerkissä kokonaislukujen joukko ja asettaa jakajaksi 0.

  • Try-lohkon sisällä se yrittää jakaa taulukon jokaisen elementin 0:lla, mikä antaa aritmeettisen poikkeuksen.
  • Tämä aritmeettinen poikkeus jää kiinni lohkoon, jossa luodaan uusi RuntimeException, jonka syynä on alkuperäinen poikkeus eli AritmeticException.
  • Koska RuntimeExceptionia ei havaita, mikä näyttää pinon jäljityksen, mukaan lukien RuntimeException ja AritmeticException.

Ketjuttujen poikkeusten edut:

Ketjuttujen poikkeusten edut on lueteltu alla:

  • Tämä poikkeus auttaa virheenkorjauksessa antamalla tietoja sekä ensisijaisista että perimmäisistä syistä.
  • Se yksinkertaistaa virheiden käsittelyä mahdollistamalla täydellisen poikkeuskontekstin leviämisen.
  • Tämä parantaa virheiden jäljitettävyyttä monimutkaisissa sovelluksissa.

Ketjuttujen poikkeusten haitat:

  • Jos sitä ei käytetä oikein, se voi tehdä pinojäljestä pidemmän ja vaikeammin luettavan.
  • Liiallinen käyttö voi aiheuttaa hämmentäviä virheilmoituksia, jos poikkeuksia ketjutetaan tarpeettomasti.
  • Kehittäjien on varmistettava, että merkitykselliset syyt liittyvät toisiinsa. muuten se voi johtaa harhaan virheenkorjauksen aikana.
Suositeltu tietokilpailu Muokkaa tietokilpailua 3 kysymystä

Mikä on ketjutettujen poikkeusten päätarkoitus Javassa?

  • A

    Poikkeuksen perimmäisen syyn piilottaminen

  • B

    Yhden poikkeuksen yhdistäminen toiseen

  • C

    Koodin suorituskyvyn parantamiseksi

  • D

    Korjaa ajonaikaiset virheet automaattisesti

Selitys:

Ketjutetut poikkeukset mahdollistavat yhden poikkeuksen linkittamisen toiseen poikkeuksen perimmäisen syyn osoittamiseksi.

Mitä menetelmää käytetään poikkeuksen syyn määrittämiseen?

  • A

    getMessage()

  • B

    setException()

  • C

    initCause()

  • D

    initCause()

Selitys:

Metodi initCause() määrittää poikkeuksen taustalla olevan syyn.

Millainen poikkeus esimerkissä on asetettu syyksi NumberFormatExceptionille?

  • A

    IOException

  • B

    Aritmeettinen poikkeus

  • C

    NullPointerException

  • D

    RuntimeException

Selitys:

Esimerkki asettaa NullPointerExceptionin syyksi NumberFormatExceptionin.

Javalla ketjutetut poikkeuksetTietokilpailu suoritettu onnistuneesti pisteesi:   2 /3 Tarkkuus:  0 % Kirjaudu sisään nähdäksesi selityksen 1 /3 1 /3 < Previous Seuraava >