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

标签 c++ visual-studio exception visual-studio-2013

我在我的 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/

相关文章:

C++:在多重映射中存储三个一组

c++ - 如何将分隔的 txt 文件传递​​给采用常量 char * 的函数?

java - 以编程方式抛出 EntityExistsException - 不好的做法?

java - 在 Java 的 try-catch block 中嵌入 try-catch block

Java 迭代器移除异常契约

c++ - 在屏幕右侧显示主窗口(Qt 5.1.0)

c++ - 启动时的 Telnet C++ 或 SSH 程序

visual-studio - 无法在 Visual Studio 中保存 BIML 文件

sql-server - 查找对 SQL Server 数据库中某个对象的所有引用

asp.net-mvc - Visual Studio 2010 “Publish”不会复制Razor View 文件