c++ - C++ 异常处理程序的一个奇怪问题

标签 c++ exception

我使用了 C++ 中的标准异常处理方法。这是 try{} 和 catch{} block 。在我的代码中,func1() 会抛出异常,而 func2 是这样的:

bool func2()
{
    try{
       func1();
    }

    catch(myException& e)
    {
       cerr << "error!" << endl;
       return false;
    }
    return true;
}

但是当我运行我的代码时,一件奇怪的事情发生了。我从未达到抛出异常的代码,但我总是达到 catch block 中的 return false 行(但也从未达到 cerr << 行)。然后函数继续返回true。我不知道是什么原因。谁能帮我解决问题?非常感谢!

最佳答案

如果您在编译器中使用任何优化标志(即非 Debug模式),您就不能相信调试器会向您显示正确的执行行。您做出了相互矛盾的陈述——“return false”语句正在执行,但函数返回 true。这是我能想到的唯一解释。

关于c++ - C++ 异常处理程序的一个奇怪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/319651/

相关文章:

java - 在子列表上调用 size() 时出现 ConcurrentModificationException

ios - 由于发送到 VC 的无法识别的选择器导致应用程序崩溃

c# - NServiceBus异常处理和消息重试机制

c++ - readlink 将 errno 设置为 ENOENT

c++ - 由于 if 语句 c++11 而避免重复代码的不便

c++ - 我的字符串 C++ 的构造函数

java - 使用匿名线程捕获异常

c++ - 如何处理空参数包的情况

c++ - 队列模拟问题

c++ - 我的轨迹栏有什么问题?