我有一个在 VS2005 中开发的 Win32 C++ 应用程序。当算法崩溃并尝试引用 std::vector 的末尾而不是捕获 std::vector 时,有一个 try {} catch (...) {} 包裹在一段代码中,但仍然有 3 个函数深异常,程序进入 VS 调试器,告诉我有一个未处理的 win32 异常,并且在我的函数上方的调用堆栈中找到以下内容:
msvcr80.dll!:inavlid_parameter_noinfo()
msvcr80.dll!:invoke_watson(....)
msvcr80.dll!:_crt_debugger_hook(...)
如何防止调试器被调用?这种情况发生在 30 分钟的模拟结束时,此时我会丢失所有结果,除非我能够捕获并记录异常。这个和类似的 try/catch 结构在过去一直有效 - 是否有编译器设置会影响它?帮忙?
最佳答案
您可能希望将非 C++ 异常转换为 C++ 异常。 Here这是如何执行此操作的示例。
关于c++ - 什么可以防止异常被捕获?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8089851/