C ++:当try / catch添加到代码时,bug消失了

时间:2012-07-04 02:21:50

标签: c++ exception try-catch

我遇到了一个非常奇怪的错误,也许有人可以帮我理解。我有一个代码与向量超出范围错误崩溃相当一致。关于这个错误的另一个奇怪的事情是,当我在整个代码中抛出大量的cout语句以试图确定错误的位置时,它会停止崩溃。

无论如何,作为进一步的测试,我在部分代码周围放置了try / catch块,我的实现类似于:

try {
    // my code that is presumably causing problems
  }
  catch (out_of_range& oor) {
    cerr << "Out of Range error: " << oor.what() << endl;
  }

当我添加此代码时,错误似乎消失了。没有更多的崩溃,我从来没有在捕获中看到cerr消息。

这有什么办法可以理解吗?

1 个答案:

答案 0 :(得分:1)

在调试器中逐步执行旧代码并隔离错误。在调试器中逐步执行新代码并隔离非错误。我将此作为“回答”而不是评论发布,因为它会在更短的时间内为您提供您所寻找的答案,而不是我们的答案或您阅读我们的答案。

调试器用十个字:用-g编译,google“gdb cheatsheet”,这很简单。