Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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:

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;
}

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?

like image 255
Rella Avatar asked Dec 29 '22 04:12

Rella


1 Answers

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

Please catch by const reference.

like image 185
John Dibling Avatar answered Dec 30 '22 18:12

John Dibling