gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 14:59:17 27 4
gpt4 key购买 nike

我使用了 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com