【发布时间】:2013-07-19 07:57:40
【问题描述】:
在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
【问题讨论】:
-
会不会在第一行代码就崩溃了?
-
@computergek92 捕获 boost::system::error_code 而不是 boost::exception。
-
@ForEveR 如果是这样,那么
...应该已经抓住了它 -
您能详细说明崩溃本身吗? VS的异常助手会导致调试器进入执行中断吗?或者,您可以对
resolver::resolve()使用不抛出重载。 -
@computergek92:对不起。我很好奇调试器是否正在观察异常。问题是否在sscce 中体现出来?
标签: c++ exception boost exception-handling boost-asio