Istisnolarni boshqarish (dasturlash) Reja: Istisnolar. Istisnolarni qayta ishlash. Istisnolar generatsiyasi. Istisno holatning ma'lumotlar elementlaridan foydalanish Istisno holatlar va sinflar Istisnolar va konstruktorlar Istisnolar C++tili istisnolarga xizmat ko'rsatish standartini belgilab beradi. Istisno holatlar (exception) dasturda xatoni - kutilmagan hodisani ifodalaydi. Dastur o'zining ishlab chiqilishida ko'zda tutilmagan normal bo'lmagan vaziyatga duch kelganda, boshqaruvni ushbu muammoni xal qilishga qodir bo'lgan dasturning boshqa qismiga berishi mumkin hamda yo dasturni bajarishni davom ettirish yoki ishni tugallash kerak. Istisnolarni joydan joyga tashlab berish (excpletion throwing) dasturning normal bajarilishiga to'sqinlik qiladigan sabablarning tashxisi uchun foydali bo'lishi mumkin bo'lgan axborotni tashlab berish nuqtasida to'plash imkonini beradi. Siz dastur tugallanishi oldidan zarur xatti-harakatlarni bajaradigan istisnolarga ishlov bergich (exception handler) ni aniqlashingiz mumkin. Dastur ichida yuzaga keladigan sinxron istisnolar deb nomlanuvchi istisnolarga xizmat ko'rsatiladi. Ctrl+C klavishalarini bosish kabi tashqi holatlar istisno hisoblanmaydi. Dasturda xar bir istisno holat sinf sifatida aniqlanadi. Masalan, quyida ko'rsatilan holat fayllar bilan ishlash uchun uchta istisno holatni aniqlaydi: class fileopenerror ; class filereaderror ; class filewriteerror ; Istisno holatlar o'zgaruvchilarni va sinf funksiya - elementlarini ishlatish mumkin. Xar bir istisno holat sinfga mos. Istisnolarni qayta ishlash Dastur istisno holatni ko'rishdan va unga javob berishdan oldin istisno holatni aniqlovchi C++dagi try operatorini ishlatish lozim. Istisnolarni generatsiya qila oladigan kod bloki try kalit-so'z bilan boshlanadi va shakldor qavslar ichiga olinadi. Agar try blok ichida istisnoni topib olsa, dasturiy uzilish sodir bo'ladi hamda quyidagi xatti-harakatlar ketma-ketligi bajariladi: 1.Dastur istisnoga ishlov bergichning to'g'ri keladiganini qidiradi. 2.Agar ishlov bergich topilsa, stek tozalanadi va boshqaruv istisnolarga ishlov bergichga uzatiladi. 3.Agar ishlov bergich topilmagan bo'lsa, ilovani tugatish uchun terminate funksiyasi chaqiriladi. Yuzaga kelgan istisnoga ishlov beruvchi kod bloki catch kalit-so'z bilan boshlanadi va shakldor qavs ichiga olinadi. Istisnoga ishlov bergichning kamida bitta kod bloki bevosita try blokining ortidan kelishi kerak. Dastur generatsiya qilishi mumkin bo'lgan xar bir istisno uchun o'z ishlov bergichi ko'zda tutilgan bo'lishi kerak. Istisnolarga ishlov bergichlar navbatma-navbat ko'rib chiqiladi hamda turi bo'yicha catch operatoridagi argument (dalil) turiga to'qg'ri keladigan istisnoga ishlov bergich tanlab olinadi. Ishlov bergich tanasida goto operatorlari bo'lmagan taqdirda, berilgan try bloki istisnolariga ishlov bergichning oxirgisidan keyin kelgan nuqtadan boshlab dasturning bajarilishi yana davom etadi. Masalan, filesopy funksiyani chaqirishda quyidagi try operatori istisno holatni aniqlash imkonini beradi: try filecopy(SOURCE.TXT, TARGET.TXT) ; ; Qanday istisno holat ro'y berganini aniqlash uchun try operatordan so'ng dastur bitta yoki bir nechta catch operatorlarni joylashtirish lozim: catch (fileopenerror) cerr ...

Joylangan
05 Jun 2024 | 16:14:04
Bo'lim
Informatika va AT
Fayl formati
zip → doc
Fayl hajmi
12.57 KB
Ko'rishlar soni
81 marta
Ko'chirishlar soni
4 marta
Virus yo'q.
VirusTotal da tekshirish
O'zgartirgan san'a:
29.03.2025 | 00:25
Arxiv ichida: doc
Joylangan
05 Jun 2024 [ 16:14 ]
Bo'lim
Informatika va AT
Fayl formati
zip → doc
Fayl hajmi
12.57 KB
Ko'rishlar soni
81 marta
Ko'chirishlar soni
4 marta
Virus yo'q.
VirusTotal da tekshirish
O'zgartirish kiritilgan:
29.03.2025 [ 00:25 ]
Arxiv ichida: doc