5.1. Xatoliklarni qayta ishlashning umumiy mexanizmi
Istisno qilinadigan holatlar (kutilmagan bir qator vaziyatlar roʻy berganda) dastur oʻz vazifasini bajara olmay qolishi mumkin. Nolga boʻlinish, mavjud boʻlmagan xotira qismiga murojaat qilish mumkin boʻlgan ana shunday holatlardan sanaladi.
Istisno qilinadigan holatlarni qayta ishlash (sodda qilib xatoliklarnui tutib qolish deb aytish mumkin) – dasturning bajarilishi jarayonida oldindan kutilmagan holatlar yuzaga kelganda mos ravishda javob reaksiyasini belgilab qoʻyishni nazarda tutadi.
Python tili istisno qilinadigan holatlar sodir boʻlganda dastur oʻzini qanday tutishini belgilab qoʻyish uchun dasturchilarga bir qator vositalarni taklif qiladi.
Dasturdagi xatoliklar uch guruhga boʻlinadi: sintaktik (dastur matnidagi) va algoritmik hatoliklar va bajarilish vaqtidagi hatoliklar. Sintaktik hatoliklar eng oson tuzatiladigan hatolik hisoblanadi. Odatda interpretator dasturni ishga tushirishdan avval bunday hatoliklarni aniqlaydi va otladka qilish jarayonida bartaraf qilinadi. Algoritmik hatoliklarni aniqlash esa murakkabroq. Bunday hatoliklar masalani hal qilishning notoʻgʻri usulini tanlash oqibatida yuzaga kelishi mumkin. Dastur matnidagi mavjud xatoliklarni aniqlash va bartaraf etish jarayoni boshlangʻich kiritiladigan ma’lumotlar uchun dastur kutilgan ishonchli natija berganidan keyingina tugallangan deb hisoblanadi. 3-tur xatoliklar esa faqat dastur bajarilayotgan vaqtda yuzaga kelishi mumkin. Bunday xatoliklar dastur ishini toʻxtatib qoʻyadi. Dasturchi bajarilish vaqtidagi hatoliklar oldini olishi, ya’ni dastur har qanday holda ham oʻz ishini davom ettirib, kutilgan natijani berishini ta’minlashi lozim. Buning uchun dasturchidan bajarish vaqtida hatoliklarni yuzaga keltirishi mumkin boʻlgan turli mazmundagi sabablarni hisobga olishi va ularning har biri sodir boʻlgan hol uchun dasturning javob reaksiyasini belgilab qoʻyishi talab qilinadi.
Python interpretatori bajarish vaqtidagi hatoliklar yuzaga kelganligi haqida standart ma’lumotlarni ekranga chiqaradi. Koʻpincha bunday ma’lumotlar oddiy foydalanuvchilar uchun tushunarli boʻlmaydi. Bu muammoni dasturchi dasturning javob reaksiyasini belgilalayotgan vaqtda hal qilishi mumkin. Buning uchun u qayta ishlagichlarni tashkil qilishi lozim. Istisno qilinadigan holatlarni tutob qolish va ularni qayta ishlash try bilan boshlanadigan nazorat bloklarida amalga oshiriladi.
Eng koʻp chraydigan istisno qilinadigan vaziyat sifatida quyidagilarni keltirib oʻtish mumkin:
nolga boʻlinish;
mavjud boʻlmagan oʻzgaruvchiga murojaat;
mavjud boʻlmagan faylga murojaat;
belgilangan diapazondan chetdagi elementga murojaat.
Quyidagi jadvalda shu va shunga oʻxshash istisno qilinadigan vaziyatlar uchun Python tilida aniqlangan ularning tiplari keltirilgan.