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
Dostları ilə paylaş: |