Sobes.tech
Junior

Илм дар Java чист?

sobes.tech AI

Ҷавоб аз AI

Ҳодиса (Exception) дар Java — ин рӯйдодест, ки раванди оддии иҷрои барнома дар вақти иҷро (runtime)ро қатъ мекунад. Он нишон медиҳад, ки хатогӣ ё ҳолати номуайян рӯй додааст.

Ҳодисаҳо бо истифода аз механизм try-catch-finally идора карда мешаванд.

Ҳамҷоягии ҳодисаҳо:

  • Throwable
    • Error (хатоҳои ҷиддӣ, ки одатан барқарор кардан мумкин нест)
    • Exception (хатоҳои камтар ҷиддӣ, ки метавонанд идора карда шаванд)
      • RuntimeException (ҳодисаҳои ғайриназоратшаванда, ки дар вақти иҷро рӯй медиҳанд, масалан NullPointerException)
      • Ҳодисаҳои санҷидашуда (checked exceptions) (талап мекунанд, ки ба онҳо равшан идора ё дар сигнатураи метод эълон карда шаванд, масалан IOException)

Мақсади ҳодисаҳо:

  • Ҷудо кардани коди, ки хатогиро ба вуҷуд меорад, аз коди, ки онро идора мекунад.
  • Беҳтар кардани хонданавӣ ва эътимоднокии барнома.
  • Пешгирӣ кардани қатъии ногаҳонии барнома.

Масалан барои идоракунии ҳодиса:

try {
    // Коди, ки метавонад ҳодиса ба вуҷуд орад
    int result = 10 / 0; // ArithmeticException
} catch (ArithmeticException e) {
    // Идоракунии ҳодиса
    System.err.println("Хатогӣ дар тақсим ба нул: " + e.getMessage());
} finally {
    // Блок, ки ҳамеша иҷро мешавад, новобаста аз ҳодиса
    System.out.println("Блок finally иҷро шуд.");
}