Объектга йўналтирилган программалаш


Download 0.58 Mb.
bet64/71
Sana08.05.2023
Hajmi0.58 Mb.
#1444224
TuriПрограмма
1   ...   60   61   62   63   64   65   66   67   ...   71
Bog'liq
С ОЙП

cout<<"c="<
return 0;
}
catch (Xato1 & xato1)
{
cout<<" Xato1 turidagi istisno ro'y berdi!\n";
return 1;
}
catch (...)
{
cout<<"Qandydir istisno ro'y berdi!\n";
return 2;
}
}
Программа ишлашида, бош функциядан AdivB() функция чақирил-ганда, агар:

  • b аргумент қиймати 0 бўлса, Xato1 туридаги истисно юзага келтирилади ва catch (Xato1 & xato1) блок томонидан қайта ишланади;

  • a аргумент қиймати 0 бўлса, Xato1 туридаги истисно юзага келтирилади ва catch (…) блок томонидан қайта ишланади;

  • a ва b аргументлар нолдан фарқли бўлса, истисно ҳолати рўй бермайди, ҳамда программа ўз ишини нормал тугатади.

throw калит сўзини нафақат истисно юзага келтириш учун, балки бирорта функция томонидан юзага келтириши мумкин бўлган истисноларни таснифлаш учун ишлатиш мумкин. Истисноларни таснифлаш қуйидаги форматда берилади:
throw (<тур1><тур2>,…)
Истисноларни таснифлаш функция параметрлари рўйхатидан кейин келади ва у функция қандай турдаги истисно юзага келтириши мумкин-лиги кўрсатади. Лекин бу ҳолат функция бошқа турдаги истисноларни юзага келтирмайди дегани эмас. Кўрсатилган турдан фарқли юзага келган истисноларга кутилмаган истиснолар дейилади ва улар ҳам алоҳида йўл билан қайта ишланади. Агар функцияга бирорта истиснони юзага келтиришни ман қилиш учун тури кўрсатилмаган истисно таснифидан фойдаланилади. Иккинчи томондан, истисно таснифига бўлмаган функ-ция ҳар қандай истиснони юзага келтириши мумкин.
Мисол келтирайлик.
#include
bool test;
class Xato1{};
void Func1(bool bul) throw(Xato1)
{
if (bul) throw Xato1();
}


void Func2() throw()
{
try
{

Download 0.58 Mb.

Do'stlaringiz bilan baham:
1   ...   60   61   62   63   64   65   66   67   ...   71




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