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
Do'stlaringiz bilan baham: |