Catch Boost exception

Catch Boost exception

本文关键字:exception Boost Catch      更新时间:2023-10-16

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

我在没有使用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();
            }
       }