C++:将 try/catch 添加到代码时错误消失

标签 c++ exception try-catch

我遇到了一个非常奇怪的错误,也许有人可以帮助我理解。我有一个代码与 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/

相关文章:

c++ - 为什么结构的 sizeof 不等于每个成员的 sizeof 之和?

java - Try-Catch block 获取字符串长度错误

ViewModel 中的 Silverlight 异常未在 Application_UnhandledException 中捕获

c# - 从BackgroundWorker到主线程的异常转发

php - 我可以在将 html 文件加载到 DOMDocument 时 try catch PHP 警告吗?

java - 从类内的多个方法捕获异常

c++ - time_t 的字符串表示?

c++ - 从 DLL 写入控制台

c++ - boost::shared_ptr 和分配派生类

java - 错误!线程 "AWT-EventQueue-0"java.lang.IllegalStateException : Not on FX application thread; currentThread = AWT-EventQueue-0 中的异常