Здравствуйте, r1der, Вы писали:
R>Привет. Очередной у меня глупый вопрос возник.. допустим пользователь в инт переменную в помощью cin ввел букву.. программа завершится с ошибкой.. как перехватить исключение?
1. Программа ошибкой не завершится. Будет установлен флаг failbit потока, а переменная не будет модифицирована. Так по умолчанию. Проверить флаг можно методом fail().
int num;
cin>>num;
if(cin.fail())
{
cout<<"Error"<<endl;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
}
2. Для того, чтоб поток генерировал исключения необходимо установить флаги при которых будут эти исключения генерироваться.
int num;
cin.exceptions(ios::failbit);
try
{
cin>>num;
}
catch(runtime_error& e)
{
cout<<e.what()<<endl;
}