Alb*_*ert 3 visual-studio-2010 visual-studio
我得到了一个First-chance exception at 0x75FA2EEC in x.exe: Microsoft C++ exception: boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::property_tree::ptree_bad_path> > at memory location 0x006AE774.
在我的代码中,我以为我已经处理过它们了:
const ptree& v;
std::string value;
try { value = v.get<std::string>("<xmlattr>.Value"); }
catch(ptree_bad_path&) { value = v.get_value<std::string>(); }
Run Code Online (Sandbox Code Playgroud)
(根据文档.)
那么为什么我会收到错误?
它似乎只是忽略了错误然后继续执行.
那么为什么我会收到错误?
这不是错误,它只是一个调试器通知.有几个,例如,当线程退出或DLL加载或程序终止时,您也会看到通知.这些是程序中通常会对程序产生很大影响的事件,C++异常是一个异常事件,因此调试器会让您知道.
"第一次机会"异常不必变成中止您的程序的未处理异常.它没有,你在代码中写了try/catch并捕获了异常.仍然很高兴知道这一点,也许你的捕获处理被打破,你的程序行为不端.它通常是因为异常应该是例外的,所以不要经常进行测试.您可以使用Debug + Exceptions执行此操作,勾选C++异常的Thrown复选框.调试器现在会在第一次机会异常通知时自动中断程序,让您快速找到抛出异常的原因.很有用.
您不必查看这些通知,右键单击"输出"窗口并取消选中"异常消息"选项.
功能,而不是错误.
| 归档时间: |
|
| 查看次数: |
1199 次 |
| 最近记录: |