1 – dars. C++ Dasturlash tilining kelib chiqishi xaqida ma’lumot


G’ayri oddiy holatni qayta ishlovchini ta'riflash



Download 4,47 Mb.
bet88/89
Sana15.04.2022
Hajmi4,47 Mb.
#553102
1   ...   81   82   83   84   85   86   87   88   89
Bog'liq
C kitob TAYYOR

G’ayri oddiy holatni qayta ishlovchini ta'riflash

Dastur g’ayri oddiy holatni generatsiya qilganda kompilyator g’ayri oddiy holatni qayta ishlovchi funktsiyani chaqiradi. Misol uchun qo’yidagi nuke_meltdown gayri oddiy hodisa sinfi bu holatni qayta ishlovchi nuke_meltdown funktsiyasini anilqaydi:


class nuke_meltdown
{
public:
nuke_meltdown(void){ cerr << "\a\a\aRabotayu! Rabotayu! Rabotayu!" << endl; }
};
Bu misoldjva dasturda nuke_meltdown g’ayri oddiy hodisasi generatsiya bo’lganda, C++ nuke_meltdown funktsiyasi operatorlarini ishga tushiradi, shundan so’ng g’ayri oddiy holatni aniqlashgga ruhsat beruvchi try operatoridan so’ng kelgan operatorga boshqarishni uzatadi. Qo’yidagi MELTDOWN.CPP dasturi nuke_meltdown funktsiyasini bajarilishini ko’rsatadi. Bu dasturda try operatoridan g’ayri oddiy holatni aniqlashda ruhsat berish uchun foydalaniladi. Shundan so’ng dastur add_u232 funktsiyani amount parametri bilan chaqiradi. Agar bu parametr qiymati 255 dan kam bo’lsa, funktsiya muvaffaqiyatli bajarilmoqda. Agar parametr qiymati 255 dan oshiq bo’lsa funktsiya nuke_meltdown g’ayri oddiy holatini generatsiya qiladi:
#include
class nuke_meltdown
{
public:
nuke_meltdown(void){ cerr << "\a\a\aRabotayu! Rabotayu! Rabotayu!" << endl; }
};
void add_u232(int amount)
{
if (amount < 255) cout << "Parametr add_u232 v poryadke" << endl;
else throw nuke_meltdown();
}
void main(void)
{
try
{
add_u232(255);
}
catch (nuke_meltdown)
{
cerr << "Programma ustoychiva" << endl;
}
}
Bu dastur bajarilganda qo’yidagi ma'lumot ekranga chiqariladi:
S:\> MELTDOWN
Rabotayu! Rabotayu! Rabotayu!
Programma ustoychiva


G’ayri oddiy holat ma'lumot elemenlaridan foydalanish.

Oldingi misollarda dastur catch operatori yordamida qanday g’ayri oddiy holat yuz berganini aniqlashi mumkin edi. G’ayri oddiy holat haqida qancha ko’p ma'lumot olinsa shunchalik hatoga to’g’ri reaktsiya qilishi mumkindir. Misol uchun file_open_error hodisasi yuz berganda hato keltirib chiqargan fayl nomini bilish zarurdir. Shunga uhshab file_read_error va file_write_error dasturda hato joylashgan baytni bilish kerak bo’lishi mumkin. Bunday ma'lumotlarni saklab qolish uchun bu ma'lumotlarni g’ayri oddiy holat sinfiga element sifatida kiritib qo’yish mumkindir. Keyinchalik g’ayri oddiy hodisa yuz berganda dastur bu ma'lumotni qayta ishlovchi funktsiyaga parametr sifatida uzatishshi mumkindir:


throw file_open_error(source);
throw file_read_error(344);
Gayri oddiy holatni kayta ishlovchida bu parametrlar sinfning mos parametrlariga berib kuyilmishi mumkin. Masalan:
class file_open_error
{
public:
file_open_error(char *filename) { strcpy(file_open_error::filename, filename); }
char filename[255] ;
};



Download 4,47 Mb.

Do'stlaringiz bilan baham:
1   ...   81   82   83   84   85   86   87   88   89




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