Rella Rella - 8 months ago 84
C++ Question

How to catch boost asio boost::system::error_code connect exception separatly from other exceptions?

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

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);
catch (std::exception& e)
return -1;

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

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

Please catch by const reference.