我遇到了一个非常奇怪的错误,也许有人可以帮助我理解。我有一个代码与向量超出范围错误一致地崩溃。关于这个错误的另一个奇怪的事情是,当我在整个代码中加入大量 cout 语句以试图确定错误的位置时,它就停止了崩溃。
无论如何,作为进一步的测试,我在部分代码周围放置了 try/catch 块,我的实现类似于:
try {
// my code that is presumably causing problems
}
catch (out_of_range& oor) {
cerr << "Out of Range error: " << oor.what() << endl;
}
当我添加此代码时,错误似乎消失了。没有更多的崩溃,我再也没有在 catch 中看到 cerr 消息。
有什么可能的方法可以使这有意义吗?