Boost asio 有这样的 socket connect api 。我有这么简单的代码:

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

我想要的只是尝试连接并捕获 boost::system::error_code 连接异常。只有它。我不再需要缓存了。在它上面我需要返回-1。这样的事情怎么办?

最佳答案

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

请通过常量引用捕获。

关于c++ - 如何从其他异常中分别捕获 boost asio boost::system::error_code 连接异常?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4229949/

10-11 22:47
查看更多