Verižne izjeme v Javi

Verižne izjeme v Javi

Verižne izjeme v Javi omogočajo povezovanje ene izjeme z drugo, tj. ena izjema opisuje vzrok druge izjeme.

  • Na primer, razmislite o situaciji, v kateri metoda vrže an ArithmeticException zaradi poskusa deljenja z ničlo.
  • Toda glavni vzrok napake je bila napaka V/I, zaradi katere je bil delitelj enak nič.
  • V takih primerih verižne izjeme pomagajo širiti tako primarne kot temeljne vzroke napake.

Primer : Naslednji primer prikazuje, kako uporabiti verižne izjeme v Javi.

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

Izhod
Caught Exception: java.lang.NumberFormatException: Primary Exception Cause of Exception: java.lang.NullPointerException: Root cause of the exception  

Opomba: Verižne izjeme, znane tudi kot ugnezdene izjeme, nam omogočajo, da vzrok povežemo z izjemo v Javi. To je uporabno, ko želimo posredovati informacije o prvotnem vzroku izjeme.

Konstruktorji

  • Throwable (Trowable vzrok) : kjer je vzrok izjema, ki povzroči trenutno izjemo.
  • Throwable (String msg Throwable vzrok) : kjer je sporočilo sporočilo o izjemi, vzrok pa je izjema, ki povzroči trenutno izjemo.

Metode Throwable podpirajo verižne izjeme

  1. getCause() : Ta metoda vrne dejanski vzrok izjeme.
  2. initCause (vrečni vzrok) : Ta metoda nastavi vzrok za klicno izjemo.

primer: Uporaba sporočila po meri z verižnimi izjemami

V Javi lahko verižimo izjeme z uporabo konstruktorja razreda Throwable.

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

Izhod:

Izhod

Pojasnilo: V tem primeru niz celih števil in nastavi delitelj na 0.

  • Znotraj poskusnega bloka poskuša razdeliti vsak element matrike z 0, kar vrže ArithmeticException.
  • Ta ArithmeticException je ujeta v bloku catch, kjer je ustvarjena nova RuntimeException z izvirno izjemo, tj. ArithmeticException kot vzrokom.
  • Ker RuntimeException ni ujeta, kar prikaže sled sklada, vključno z RuntimeException in ArithmeticException.

Prednosti verižnih izjem:

Prednosti verižnih izjem so navedene spodaj:

  • Ta izjema pomaga pri odpravljanju napak z zagotavljanjem podrobnosti o primarnih in temeljnih vzrokih.
  • Poenostavi obravnavo napak z omogočanjem širjenja celotnega konteksta izjeme.
  • To izboljša sledljivost napak v kompleksnih aplikacijah.

Slabosti verižnih izjem:

  • Če se ne uporablja pravilno, lahko sled sklada postane daljša in težje berljiva.
  • Prekomerna uporaba lahko povzroči nejasna sporočila o napakah, če so izjeme po nepotrebnem verižene.
  • Razvijalci morajo zagotoviti, da so pomembni vzroki povezani; drugače lahko zavede med odpravljanjem napak.
Predlagani kviz Uredi kviz 3 vprašanja

Kaj je glavni namen verižnih izjem v Javi?

  • A

    Če želite skriti glavni vzrok izjeme

  • B

    Eno izjemo povezati z drugo

  • C

    Za izboljšanje delovanja kode

  • D

    Za samodejno odpravljanje napak med izvajanjem

Pojasnilo:

Verižne izjeme omogočajo povezovanje ene izjeme z drugo, da se prikaže osnovni vzrok.

Katera metoda se uporablja za nastavitev vzroka izjeme?

  • A

    getMessage()

  • B

    setException()

  • C

    initCause()

  • D

    initCause()

Pojasnilo:

Metoda initCause() nastavi osnovni vzrok izjeme.

Katera vrsta izjeme je v primeru nastavljena kot vzrok za NumberFormatException?

  • A

    IOException

  • B

    ArithmeticException

  • C

    NullPointerException

  • D

    RuntimeException

Pojasnilo:

Primer nastavi izjemo NullPointerException kot vzrok za izjemo NumberFormatException.

Verižne izjeme v JaviKviz uspešno zaključen Vaš rezultat:   2 /3 Natančnost:  0 % Prijavite se za ogled razlage 1 /3 1 /3 < Previous Naprej >