考试网 >> IT认证 >> 水平 >> 软件指导 >> 分析构函数中抛出的异常

分析构函数中抛出的异常

发布时间:2006-06-28 05:19     点击:
分页:上一页  1 2 3 4 [5] 

try

{

// 注意:在析构函数中抛出了异常

throw std::exception("在析构函数中故意抛出一个异常,测试!");

}

catch(…) {}

}

void Func() throw()

{

throw std::exception("故意抛出一个异常,测试!");

}

void Other() {}

};

  程序运行的结果如下:

  开始准备销毁一个MyTest_Base类型的对象

  故意抛出一个异常,测试!

  怎么样,现在是不是一切都已经风平浪静了。

析构函数中抛出异常时概括性总结

  (1) C++中析构函数的执行不应该抛出异常;

  (2) 假如析构函数中抛出了异常,那么你的系统将变得非常危险,也许很长时间什么错误也不会发生;但也许你的系统有时就会莫名奇妙地崩溃而退出了,而且什么迹象也没有,崩得你满地找牙也很难发现问题究竟出现在什么地方;

  (3) 当在某一个析构函数中会有一些可能(哪怕是一点点可能)发生异常时,那么就必须要把这种可能发生的异常完全封装在析构函数内部,决不能让它抛出函数之外(这招简直是绝杀!呵呵!);

  (4)一定要切记上面这几条总结,析构函数中抛出异常导致程序不明原因的崩溃是许多系统的致命内伤/  至此在C++程序中,各种可能的地方抛出的异常将如何地来处理这个主题已基本讨论完毕!
分页:上一页  1 2 3 4 [5] 
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有