我遇到了一个非常奇怪的错误,也许有人可以帮助我理解。我有一个代码与 vector 超出范围错误非常一致地崩溃。这个错误的另一个奇怪之处在于,当我在整个代码中加入大量 cout 语句以试图确定错误的位置时,它不会崩溃。
无论如何,作为进一步的测试,我在部分代码周围放置了 try/catch block ,我的实现类似于:
try {
// my code that is presumably causing problems
}
catch (out_of_range& oor) {
cerr << "Out of Range error: " << oor.what() << endl;
}
当我添加这段代码时,错误似乎消失了。没有更多的崩溃,我再也没有在 catch 中看到 cerr 消息。
这有什么可能有意义吗?
最佳答案
逐步调试调试器中的旧代码并隔离错误。在调试器中逐步执行新代码并隔离非错误。我将此作为“答案”而不是评论发布,因为它会在比我们回答或您阅读我们的答案所需的时间更短的时间内为您提供您正在寻找的答案。
调试器十个字:用-g编译,google“gdb cheatsheet”,很简单。
关于C++:将 try/catch 添加到代码时错误消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11321642/