Если предположить, что извлечение потока не завершится неудачей, будет
if( !(stream >> token) )
throw runtime_error( "Unexpected end of recipe." );
else if( token == "something" )
// do something
else
throw runtime_error( "Unknown token" );
Работай так
if( !(stream >> token) )
throw std::runtime_error( "Unexpected end of recipe." );
if( token == "something" )
// do something
else
throw std::runtime_error( "Unknown token" );
(stream = std :: stringstream и token = std :: string)
И ожидаемый результат token
содержит следующий ... токен ... из потока?
Есть ли лучший способ обработки ошибок? Как cerr << "error whatever" << endl; exit();
или что-то, или мой std::runtime_error
достаточно хорош?