1-ma’ruza C++ da Sinflar va obyektlar. Konstruktor va destruktor. Sinf usullari reja


Download 86.61 Kb.
bet19/23
Sana09.06.2023
Hajmi86.61 Kb.
#1472539
1   ...   15   16   17   18   19   20   21   22   23
Bog'liq
Algoritmlashga kirish fanidan majmua

5.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.

5.4. Kutilmagan istisnolarni qayta ishlash
Agar dasturda kuzda tutilmagan istisno xodisa yuz bersa standart istisnolarni qayta 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 qayta 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 86.61 Kb.

Do'stlaringiz bilan baham:
1   ...   15   16   17   18   19   20   21   22   23




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