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