2

在 的帮助下解析主机名时icmp::resolver::query query(icmp::v4(), host, "");destination = *resolver.resolve(query);当无法解析主机名时出现异常。现在我想捕捉那个异常,但它没有被捕捉到。我现在的代码是:

        icmp::resolver::query query(icmp::v4(), host, "");  
        try
        {
            destination = *resolver.resolve(query);                                         
        }
        catch(boost::exception & e)
        {
             //Print exception
        } 
        catch (...) {
            //print exception   
        }

我究竟做错了什么?

更新:该应用程序是在 Visual Studio 2012 中制作的,并且具有 C++ 非托管和托管 (.net) 代码。boost的版本是1.54.0

4

1 回答 1

0

我没有使用给出错误代码的 icmp::resolver 函数的重载函数来解决它。然后我在迭代器上得到一个空指针异常并解决它没有指向resolver.resolve(query,ec)

        {
            icmp::resolver::query query(icmp::v4(), host, "");
            iter = resolver.resolve(query, ec);
            if (!ec) 
            {
                destination = *iter;
            } 
            else 
            {
                ec.value();
            }
       }
于 2013-08-05T06:13:43.160 回答