当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《C++异常处理程序的一个奇怪问题》经验,为你挑选了1个好方法。

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

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

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

但是当我运行我的代码时,会发生一件奇怪的事情.我从来没有达到抛出异常的代码,但是我总是在catch块中到达返回false的行(但是cerr <<从来没有到达行).然后函数继续返回true.我不知道原因是什么.任何人都可以帮我解决问题吗?非常感谢你!



1> Mark Ransom..:

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

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有