我在C++中使用了标准的异常处理方法.哪个是try {}和catch {}阻止.在我的代码中,func1()会抛出异常,而func2是这样的:
bool func2()
{
try{
func1();
}
catch(myException& e)
{
cerr << "error!" << endl;
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行我的代码时,会发生一件奇怪的事情.我从来没有达到抛出异常的代码,但是我总是在catch块中到达返回false的行(但是cerr <<
从来没有到达行).然后函数继续返回true.我不知道原因是什么.任何人都可以帮我解决问题吗?非常感谢你!
如果您在编译器中使用任何优化标志(即非调试模式),则无法相信调试器会向您显示正确的执行行.你做了相互矛盾的陈述 - "return false"语句正在执行,但函数返回true.这是我能想到的唯一解释.
归档时间: |
|
查看次数: |
545 次 |
最近记录: |