Rella Rella - 1 month ago 16
C++ Question

How to catch boost asio boost::system::error_code connect exeption separatly from other exeptions?

Boost asio has such socket connect api. I have such simple code:

try
{
std::string addr;
std::string port;
sscanf(tcpUrl.c_str(), "tcp://%[^:]:%d", &addr, &port);

boost::asio::io_service io_service;

tcp::resolver resolver(io_service);
tcp::resolver::query query(tcp::v4(), addr.c_str(), port.c_str());
tcp::resolver::iterator iterator = resolver.resolve(query);

tcp::socket s(io_service);
s.connect(*iterator);
Sleep(250);
s.close();
}
catch (std::exception& e)
{
return -1;
}


relay all I want is to try to connect and catch boost::system::error_code connect exeption. Only it. i do not need to cach any more. and on it I need to return -1. How to do such thing?

Answer
catch( const boost::system::system_error& ex )
{
  return -1;
}

Please catch by const reference.

Comments