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