Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [c++]Исключения


Автор: dimafeng 4.12.2008, 16:27
Есть потоковое чтение из фалйа значений типа long и генернировать исключения в случаее считывания не числа или числа не того формата.

Код

try
{
long i;
in << i;
throw i
}
catch(long t)
{
  cout << t;
}
catch(...)
{
  cout << "Неправильный формат числа";
}


Но на in << i идет привидения к long, и все проходит по первому исключению. Как исправить?

Автор: dizzy1984 5.12.2008, 16:29
Приблизительно так, допустим число вводится с клавиатуры.
Код

try
{
  long i;
  std::cin>>i;
  if ( std::cin.fail() ) throw i;
}
catch ( long )
{
  std::cout<<"Это не число типа long\n";
}

Автор: dimafeng 6.12.2008, 18:02
dizzy1984, Спасибо, помогло! )

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)