【发布时间】:2015-02-16 12:20:21
【问题描述】:
我在我的 C++ 程序中抛出这个错误并且不处理它:
throw std::runtime_error("X failed because " + my_string);
我用 Visual Studio 2013 编译并运行它,得到以下错误:
bla.exe 中 0x7617C42D 处未处理的异常:Microsoft C++ 异常:内存位置 0x009FEA98 处的 std::runtime_error。
如果不处理代码中的错误,我如何才能看到消息“X failed because ...”?
【问题讨论】:
-
你抛出的异常是否有
catch块?如果没有,那么您当然会收到“未处理的异常”消息。 -
@PaulMcKenzie 我想使用 Visual Studio 调试界面查看未处理异常的
what(),而不仅仅是知道存在未处理异常。 -
在 Visual C++ 中,未处理的异常被路由到默认的意外处理程序,该处理程序又调用
terminate()。据我所知,此时抛出的异常对象无法用于意外处理程序,因此无法确定其内容可能是什么。 -
我已经向 VS 团队提出了功能请求。您可以在这里投票并跟踪它:developercommunity.visualstudio.com/idea/366698/…
标签: c++ visual-studio exception visual-studio-2013