3
|
A l g o r i t m i k t i l l a r v a d a s t u r l a s h
1-ma’ruza. Istisnolarni qayta ishlash
Istisnolar, xato va kamchiliklardan qutulish
.NET platformasida istisnolarni qayta ishlash bloklarining tuzilishi.
try operatorlari va istisnolar
Kalit soʻzlar
: catch, CLR, Data, Exception, finally, HelpLink, InnerException,
istisno, Message, Source, StackTrace, TargetSite, try, using, when, xato
Istisnolar, xato va kamchiliklardan qutulish
Texnologiyalar qanchalik rivojlanmasin, ideal dasturchining mavjud emasligi
hammaga ma’lum. Dasturiy ta’minotni ishlab chiqish murakkab jarayon va bu
murakkablik sababli, hatto eng yaxshi dasturlar ham turli muammolarga duch kelishi
tabiiy hol. Ba'zi hollarda, muammo "yomon yozilgan" kod tufayli yuzaga keladi
(masalan, qator chegaralarining oshib ketishi tufayli), boshqalarida esa, foydalanuvchi
kod bazasida hisobga olinmagan notoʻgʻri ma’lumotlar kiritilishi natijasida (masalan,
telefon raqami uchun ajratilgan maydonga Chucky qiymati kiritilganida).
Muammoning sabablaridan qat'iy nazar, dastur oxir-oqibat kutilganidek
ishlamaydi. Kelgusida istisnolarni strukturali qayta ishlashga zamin yaratish uchun
anomaliyalarni tafsiflashda ishlatiladigan uchta keng tarqalgan atamani koʻrib
chiqaylik.
Nuqsonlar
. Sodda qilib aytganda, dasturchi tomonidan yoʻl qoʻyilgan xatoliklar.
Misol tariqasida, tasavvur qilaylik, Siz boshqarilmaydigan C++ da dastur tuzayapsiz.
Agar Siz dinamik ajratilgan xotirani tozalashni unutsangiz, bu xotiradagi nuqsonlarga
sabab boʻladi.
Foydalanuvchi xatoliklari
. Boshqa tomondan qaralganda, foydalanuvchi
xatoliklari odatda ilovani yaratgan dasturchi tomonidan emas, balki ishga tushiruvchi
tomonidan yuzaga keladi. Masalan, oxirgi foydalanuvchining matn maydoniga
notoʻgʻri shakllantirilgan satrni kiritishi, agar kod notoʻgʻri kiritilishni boshqarishni
nazarda tutmagan boʻlsa, katta ehtimol bilan kutilmagan xatoliklarning kelib
chiqishiga sabab boʻladi.
Istisnolar
. Istisnolar deyilganda, odatda, ilovalarni dasturlash bosqichida
hisobga olish qiyin (hatto mumkin boʻlmagan), dastur bajarilishi jarayonida yuzaga
keladigan kutilmagan holatlar nazarda tutiladi. Mavjud boʻlmagan (yoki oʻchirilgan)
ma’lumotlar bazasiga ulanishga urinish, buzilgan XML faylini ochish yoki joriy vaqtda
avtonom rejimda boʻlgan mashinaga ulanishga urinishlar ham istisnolarga misol
Ma’ruzalar matni
|
4
boʻlishi mumkin. Yuqorida sanab oʻtilgan har bir holatda, dasturchi (yoki oxirgi
foydalanuvchi) bunday "istisno" holatlarni nazorat qila olmaydi.
Keltirilgan tavsiflarni hisobga olganda shuni tushuntirish lozimki, .NET da
istisnolarni strukturali qayta ishlash – bu dastur bajarilishi jarayonida istisno holatlari
bilan ishlash usulidir. Dasturchi nazaridan chetda qolgan nuqsonlar va foydalanuvchi
xatoliklari uchun ham CLR muhiti yuzaga kelgan muammolarni identifikatsiyalovchi
tegishli
istisnolarni
generatsiyalaydi.
.NET
asosiy
sinf
kutubxonalarida
FormatException,
IndexOutOfRangeException,
FileNotFoundException,
ArgumentOutOfRangeException
va boshqa shu kabi koʻplab istisnolar mavjud. Garchi
dasturchilar har bir anomaliyani alohida muammo sifatida koʻrib chiqishsada, .NET
terminologiyasi doirasida
istisnolar
nuqsonlar, foydalanuvchi tomonidan notoʻgʻri
kiritilish holatlari va dastur bajarilishi jarayonidagi xatoliklar bilan izohlanadi.
Tafsilotlarga kirishdan oldin, keling, tuzilgan istisnolarni boshqarish rolini
rasmiylashtiraylik va uning an’anaviy xatoliklardan qanday farq qilishini koʻrib
chiqaylik.