简体   繁体   English

如何从其他异常中分别捕获boost asio boost :: system :: error_code连接异常?

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

Boost asio has such socket connect api . Boost asio具有这样的套接字连接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. 我只想尝试连接并捕获boost :: system :: error_code connect异常。 Only it. 只有它。 I do not need to cach any more. 我不需要再教了。 and on it I need to return -1. 并且我需要返回-1。 How to do such thing? 怎么做这样的事情?

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

Please catch by const reference. 请按const引用捕获。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 boost :: system :: error_code :: message()使用boost :: asio socket抛出访问冲突异常 - boost::system::error_code::message() throwing access violation exception with boost::asio socket boost :: asio :: yield_context可以设置std :: error_code而不是boost :: system :: error_code吗? - Can boost::asio::yield_context set a std::error_code instead of boost::system::error_code? 使用boost :: asio :: write()boost :: system :: error_code永远不会设置 - Using boost::asio::write() boost::system::error_code never gets set GStreamer GError to boost::system::error_code? - GStreamer GError to boost::system::error_code? 什么是升压系统error_code number 2 - What is boost system error_code number 2 无法将boost :: asio :: netdb :: errors转换为std :: error_code - Cannot convert boost::asio::netdb::errors to std::error_code 当`boost :: asio :: ip :: tcp :: resolver :: resolve()`失败时,应该提供哪个`boost :: system :: error_code`值? - Which `boost::system::error_code` value should be provided when `boost::asio::ip::tcp::resolver::resolve()` fails? boost::system::error_code 和 boost::system::error_code::value() 有什么区别? - What is the difference between boost::system::error_code and boost::system::error_code::value()? boost :: system :: error_code产生错误158未知 - boost::system::error_code producing error 158 unknown 在C ++中使用'boost :: system :: error_code' - Using 'boost::system::error_code' in C++
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM