Mavzu: C++ da istisnolarni ishlab chiqish


Istisnolarni generatsiya qilish



Download 1,49 Mb.
bet2/4
Sana13.07.2022
Hajmi1,49 Mb.
#784434
1   2   3   4
Bog'liq
c da istisnolar

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 ob’ektni nomlaydi (initsiallashtiradi), Bunda muvaqqat ob’ektning turi ifoda argumenti (dalili) ning turiga mos keladi. Ushbu ob’ektning boshqa nusxlari, masalan, istisno ob’ektidan 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.
Kutilmagan istisnolarni qayta ishlash
Agar dasturda kuzda tutilmagan istisno xodisa yuz bersa standart istisnolarni qayta ishlovchi ishlatiladi. Kup xollarda bu standart qayta 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 parametrsiz bo’ladi.
Istisno xolatning ma’lumotlar elementlaridan foydalanish
Yuqorida ko‘rib o‘tilgan misollarda dastur, catch operatordan foydalanib, qanday istisno xolat ro‘y berganini va ularga tegishli xolda javob berishini imkonini beradi. Masalan, file_open_error istisno xolatda dastur xatoni chaqiruvchi fayl nomini bilish lozim. Istisno xolatga tegishli shunday ma’lumotni saqlash uchun dastur istisno xolat sinfiga ma’lumotlar elementlarini qo‘shish. Agar keyinchalik dastur istisno xolatni yuzaga keltirsa, u ushbu ma’lumotni, quyida ko‘rsatilgandek, istisno xolatiga ishlov beruvchi funksiyaga o‘zgaruvchi sifatida uzatadi:


throw file_open_error(source);
throw file_read_error(344);
Istisno xolatga ishlov berishda bu parametrlar sinfga tegishli o‘zgaruvchilarga o‘zlashtirilishi mumkin (konstruktorga o‘xshaydi). Masalan, sinfning tegishli o‘zgaruvchisiga xatoga yo‘l qo‘ygan faylni ismini o‘zlashtirish uchun quyidagi operatorlar file_open_error istisno xolatni o‘zgartiradi:


class file_open_error
{
public:
file_open_error(char *filename) { strcpy(file_open_error::filename, filename); }
char filename[255] ;
};

Download 1,49 Mb.

Do'stlaringiz bilan baham:
1   2   3   4




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish