在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
答案 0 :(得分: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();
}
}