我在我的 C++ 程序中抛出这个错误并且没有处理它:
throw std::runtime_error("X failed because " + my_string);
我使用 Visual Studio 2013 编译并运行它,出现以下错误:
Unhandled exception at 0x7617C42D in bla.exe: Microsoft C++ exception: std::runtime_error at memory location 0x009FEA98.
如何在不处理代码中的错误的情况下看到消息“X failed because ...”?
最佳答案
如果您只是想找出导致程序终止的异常在调试时,您可以简单地 Break 然后导航调用堆栈以查看抛出异常的位置。
如果您处于 Debug模式,调用堆栈的顶部可能会指向 _CxxThrowException
。在这种情况下,您可以检查它的参数 pExceptionObject
,甚至添加类似 ((std::exception*)pExceptionObject)->what()
的内容> 到观察名单。然而,这依赖于一些并不总是有效的假设。
添加 catch (std::exception& e)
并在那里检查错误真的更容易。
关于c++ - 如何使 Visual Studio 2013 显示未处理的异常消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27534277/