如何使Visual Studio 2013显示未处理的异常消息?

Ann*_*nna 8 c++ exception visual-studio visual-studio-2013

我在我的C++程序中抛出此错误并且不处理它:

throw std::runtime_error("X failed because " + my_string);
Run Code Online (Sandbox Code Playgroud)

我使用Visual Studio 2013编译并运行它,并收到以下错误:

bla.exe中0x7617C42D处的未处理异常:Microsoft C++异常:内存位置0x009FEA98处的std :: runtime_error.

如何在不处理代码中的错误的情况下看到"X失败因为......"的消息?

Rom*_*n L 1

如果您只是想找出哪个异常导致程序在调试时终止,您可以简单地中断,然后导航调用堆栈以查看抛出异常的位置。

如果处于调试模式,调用堆栈的顶部可能会指向_CxxThrowException。在这种情况下,您可以检查其参数pExceptionObject,甚至可以将类似内容添加((std::exception*)pExceptionObject)->what()到监视列表中。然而,这依赖于一些并不总是有效的假设。

添加 acatch (std::exception& e)并检查那里的错误确实更容易。