O‘zbekiston respublikasi oliy va o‘rta maxsus ta’lim vazirligi tоshkеnt dаvlаt iqtisоdiyot universitеti


Download 1.96 Mb.
Pdf ko'rish
bet59/83
Sana08.11.2023
Hajmi1.96 Mb.
#1757524
1   ...   55   56   57   58   59   60   61   62   ...   83
Bog'liq
Obyektga yo`naltirilgan dasturlash tillari

 
12.3. Istisnolarni generatsiya qilish 
C++ o‘zi istisno xolatlarni yuzaga keltirmaydi. Ularni C++ ning throw
operatoridan foydalangan dasturlar yuzaga keltiradi. Istisno yuzaga kelganda, throw 
operatoridagi nom berish ifodasi muvaqqat obyektni nomlaydi 
(initsiallashtiradi), Bunda muvaqqat obyektning turi ifoda argumenti (dalili) ning 
turiga mos keladi. Ushbu obyektning boshqa nusxlari, masalan, istisno obyektidan 
nusxa ko‘chirish konstruktori yordamida generatsiya qilinishi mumkin. 
Masalan fayl ochilishida dastur xato kelib chiqish shartlarini tekshirish va 
throw file_open_error() istisno xolatni yuzaga keltirish mumkin. 
Istisno xolatdan foydalanishda dastur xatoni kelib chiqish shartlarini tekshiradi 
va zarur bo‘lsa throw operatordan foydalangan xolda istisno xolatni yuzaga keltiradi. 
C++ throw operatorni uchratsa, u istisno xolatga tegishli ishlov beruvchini
aktivizatsiya etadi (operatorlari istisno xolat sinfida aniqlangan funksiya. Istisno 
xolatga ishlov beruvchi funksiya bajarilgandan so‘ng C++ boshqarishni try 
operatordan keyin turgan birinchi operatorga qaytaradi. try operator esa istisno 
xolatni aniqlashini xal etuvchi operator. Keyin esa catch operatordan foydalanib 
dastur kanday istisno xolat ro‘y berganini aniqlaydi va tegishli xolda javob beradi.


101 
12.4. Kutilmagan istisnolarni qayta ishlash 
Agar dasturda kuzda tutilmagan istisno xodisa yuz bersa standart istisnolarni 
kayta ishlovchi ishlatiladi. Kup xollarda bu standart kayta ishlovchi dastur 
bajarilishini tuxtatib kuyadi.  
Avval unexpected funksiyasi chaqirilib, undan so‘ng ko‘zda tutilgan bo‘yicha 
terminate funksiyasi ishga tushadi. Bu funksiya dasturni to‘xtatish uchun abort 
funksiyasini chaqiradi.
Dasturda maxsus kayta ishlovchidan foydalanish uchun set_unexpected va 
set_terminate funksiyasidan foydjalanish lozim. Bu funksiyalar prototiplari except.h 
sarlavxali faylda aniklangan. Bu funksiyalar void tipiga ega bo‘lib parametrlarga ega 
bo‘lmasligi kerak.

Download 1.96 Mb.

Do'stlaringiz bilan baham:
1   ...   55   56   57   58   59   60   61   62   ...   83




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling