Sobes.tech
Intern

Истифодаи чӣ аст?

sobes.tech AI

Ҷавоб аз AI

Ихтисос як ҳодисаест, ки раванди оддии иҷрои барномаи барҳам медиҳад. Он дар натиҷаи хато ё ҳолати номуайян ба вуҷуд меояд.

Ихтисосҳо инҳоянд:

  • Назоратшаванда (Checked): талаб мекунад, ки дар имзо ё декларацияи усул коркард ё қайд карда шавад (масалан, ҳангоми кор бо файлҳо ё шабака).
  • Намуданашаванда (Unchecked) ё Ихтисосҳои вақти иҷро (RuntimeException): одатан нишон медиҳанд, ки дар логикаи барнома хатоҳо ҳастанд ва талаб намекунанд, ки равандро равшан коркард кунанд (масалан, тақсим ба сифр ё дар ҳудуди массив берун рафтан).
  • Хатогиҳо (Errors): масъалаҳои ҷиддӣ мебошанд, ки одатан барнома аз онҳо барқарор нашуда наметавонад (масалан, норасоии хотира).

Механизми коркарди ихтисосҳо имкон медиҳад, ки коде, ки хатоҳоро коркард мекунад, аз ҷараёни асосии логикаи барнома ҷудо карда шавад. Ин хондан ва нигоҳдории коди бароҳатро беҳтар мекунад.

Барои коркарди ихтисосҳо блокҳои try-catch-finally (дар Java, C#) ё сохторҳои монанд (try-except-finally дар Python) истифода мешаванд.

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