盾怪网教程:是一个免费提供流行杀毒软件教程、在线学习分享的学习平台!

解释c++未捕获异常的影响

时间:2023/8/3作者:未知来源:盾怪网教程人气:

[摘要]C++ 标准不指定程序在遇到未捕获异常时的行为。在一些系统中,遇到这种情况的结果是显示完整的堆栈跟踪,也就意味着在程序结束之前自动对象会正确地销毁。而在另外一些系统中,未捕获异常会导致程序直接结束,...

    C++ 标准不指定程序在遇到未捕获异常时的行为。在一些系统中,遇到这种情况的结果是显示完整的堆栈跟踪,也就意味着在程序结束之前自动对象会正确地销毁。而在另外一些系统中,未捕获异常会导致程序直接结束,而不会销毁自动对象。

    这种回旋余地是不一致的;解决用户需要与供应商需要之间的冲突导致了这一现象的产生。在某些调试环境中,在遇到未捕获异常时避免析构对象是必要的,因为它能够让用户在程序终止之前恢复执行。相反,在一些硬件架构中,如果不同时正确地销毁对象,那么展开堆栈几乎不可能做到。

    因为这是一个平台相关的行为,所以程序员就要分析在他们的系统在出现未捕获异常时的行为。更重要的是,如果我们的代码将在运行在多个平台之上,那么我们需要在 main() 函数中使用一个 catch(. . .) 代码块来保证程序行为在不同平台下的一致性。

    int main()
    {
      try
      {
        f();
      }
     catch(DerivedEx& d) //handle most derived exception first
      {}
     catch(BaseEx& e)  
     {}
     catch(...) //no exception is left uncaught
     {}
   }

    这样就保证了不会出现未捕获的异常。



关键词:解释c++未捕获异常的影响




Copyright © 2012-2018 盾怪网教程(http://www.dunguai.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版