Ланчани изузеци у Јави

Ланчани изузеци у Јави

Ланчани изузеци у Јави дозвољавају повезивање једног изузетка са другим, тј. један изузетак описује узрок другог изузетка.

  • На пример, размотрите ситуацију у којој метод баца ан АритхметицЕкцептион због покушаја дељења са нулом.
  • Али основни узрок грешке је био И/О квар који је довео до тога да делилац буде нула.
  • У таквим случајевима уланчани изузеци помажу у ширењу и примарних и основних узрока грешке.

Пример : Следећи пример показује како се користе ланчани изузеци у Јави.

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

Излаз
Caught Exception: java.lang.NumberFormatException: Primary Exception Cause of Exception: java.lang.NullPointerException: Root cause of the exception  

Напомена: Ланчани изузеци познати и као угнежђени изузеци омогућавају нам да повежемо узрок са изузетком у Јави. Ово је корисно када желимо да ширимо информације о првобитном узроку изузетка.

Конструктори

  • бацити (узрок који се може бацити) : Где је узрок изузетак који изазива тренутни изузетак.
  • Тхровабле (Стринг мсг Тхровабле узрок) : Где је мсг порука о изузетку, а узрок је изузетак који изазива тренутни изузетак.

Методе бацања подршке ланчаним изузецима

  1. гетЦаусе() : Овај метод враћа стварни узрок изузетка.
  2. инитЦаусе (узрок који се може бацити) : Овај метод поставља узрок за позивање изузетка.

Пример: Коришћење прилагођене поруке са ланчаним изузецима

У Јави можемо уланчавати изузетке користећи конструктор класе Тхровабле.

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

Излаз:

Излаз

Објашњење: У овом примеру низ целих бројева и поставља делилац на 0.

  • Унутар блока три покушава да подели сваки елемент низа са 0 што доводи до изузећа АритхметицЕкцептион.
  • Овај АритхметицЕкцептион је ухваћен у блоку цатцх где се креира нови РунтимеЕкцептион са оригиналним изузетком, тј. АритхметицЕкцептион као узроком.
  • Пошто РунтимеЕкцептион није ухваћен што приказује праћење стека укључујући РунтимеЕкцептион и АритхметицЕкцептион.

Предности ланчаних изузетака:

Предности везаних изузетака су наведене у наставку:

  • Овај изузетак помаже у отклањању грешака пружањем детаља о примарним и основним узроцима.
  • Поједностављује руковање грешкама тако што омогућава ширење комплетног контекста изузетака.
  • Ово побољшава следљивост грешака у сложеним апликацијама.

Недостаци ланчаних изузетака:

  • Ако се не користи правилно, може учинити траг стека дужим и тежим за читање.
  • Прекомерна употреба може изазвати збуњујуће поруке о грешци ако су изузеци непотребно повезани.
  • Програмери морају осигурати да су значајни узроци повезани; иначе може довести у заблуду током отклањања грешака.
Предложени квиз Уреди квиз 3 питања

Која је главна сврха ланчаних изузетака у Јави?

  • А

    Да сакријемо основни узрок изузетка

  • Б

    Повезати један изузетак са другим

  • Ц

    За побољшање перформанси кода

  • Д

    Да аутоматски исправите грешке у току рада

Објашњење:

Ланчани изузеци омогућавају повезивање једног изузетка са другим да би се показао основни узрок.

Који метод се користи за постављање узрока изузетка?

  • А

    гетМессаге()

  • Б

    сетЕкцептион()

  • Ц

    инитЦаусе()

  • Д

    инитЦаусе()

Објашњење:

Метода инитЦаусе() поставља основни узрок изузетка.

У примеру који тип изузетка је постављен као узрок за НумберФорматЕкцептион?

  • А

    ИОЕкцептион

  • Б

    АритхметицЕкцептион

  • Ц

    НуллПоинтерЕкцептион

  • Д

    РунтимеЕкцептион

Објашњење:

Пример поставља НуллПоинтерЕкцептион као узрок изузетка НумберФорматЕкцептион.

Ланчани изузеци у ЈавиКвиз је успешно завршен Ваш резултат:   2 /3 тачност:  0% Пријавите се да бисте видели објашњење 1 /3 1 /3 < Previous Следећи >