Void main(). cout << recode("Введіть значення k =");
{
char k[100];
bool vozv;
while(1)
{
vozv = true;
GotoXY(0,0);
cout << " " ;
GotoXY(0,0);
cout << recode("Введіть значення k =");
cin >> k;
try
{
kontr(k);
}
catch (const char* d)
{
GotoXY(1,0);
cout << recode((char*)d);
vozv = false;
}
if(vozv)break;
} // while
system("cls");
getch();
}
У даному прикладі функція IsNumeric() повертає true тільки при введенні цілого числа, в противному випадку – false. У функції kontr() генеруються текстові виключення при невиконанні контролю значень, що вводяться. Слід зазначити, що використання виключень при контролі введення не є кращим варіантом. Приклад наводиться для практики використання виключень.
Розглянемо приклад обробки виключень класу:
#include <iostream>
using namespace std ;
char* recode(char *txt)
{
static char buf[257];
strcpy(buf,txt);
for(unsigned int i=0;i<strlen(buf);i++)
{
if (buf[i]>='А'&&buf[i]<='п')buf[i]-=64;
if (buf[i]>='р'&&buf[i]<='я')buf[i]-=16;
}
return buf;
}
Class CTest
{
public:
CTest(){};
~CTest(){};
char *Show()
{return recode("Виключення у класі CTest class");}
};
Class CDtorDemo
{
public:
CDtorDemo();
~CDtorDemo();
};
CDtorDemo::CDtorDemo()
{
cout << recode("Конструктор") << endl;
}
CDtorDemo::~CDtorDemo()
{
cout << recode("Деструктор") << endl;
}
Void MyFunc()
{
CDtorDemo D;
throw CTest();
}
Дата добавления: 2014-12-26; просмотров: 785;