首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Visual C++ > 避免使用异常
【标  题】:避免使用异常
【关键字】:
【来  源】:网络

避免使用异常

    几年前,当异常规格这个概念首次被提出时,它们被认为是很有前景的。但是,在一个程序语言的自然发展过程中,刚开始觉得很有前景的东西逐渐被淘汰是常有的事情。让我们来看看为什么异常规格会失去原有的光彩。


在C++的析构,构造和其他成员函数中,明确的指出告诉用户哪个函数会掷出哪些异常,例如:

class A{
public:
 A() throw();
// seemingly a good idea
 ~A() throw();
};

这个程序的问题是异常规格迫使编译器花费宝贵的时间去检查函数没有违背它。

记住一个含有空异常规格的函数也可以掷出异常。例如,如果一个构造函数试图用自由存储的方式分配内存但是失败了,一个异常就会掷出,因此,它违反了构造函数的异常规格。

为了解决这些问题,编译器必须分析每个函数的构造规格。这些构造规格在一些特殊的保护块中,如果发生了未批准的异常,这些块就会调用unexpected(),这个对执行时间的影响是不可忽视的,更糟糕的是,这些检查仅有一点价值,终于,总会有一个违反了的异常规格导致了程序的终止。

这个例子的教训是:无论流行的C++书上怎么写,也不要总是使用异常规格。

利用成员列表初始化对象:【上一篇】
使用typedef来定义新的整数类型:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • Enabling SSL with Boa
  • nfs试验成功
  • 菜鸟求解 (编程实现360阶扰动重力 )
  • 几个具“恶心”的C语言程序
  • 在RHAS4下配置apache2+tomcat4+php5+oracle10g+gd+png+zlib
  • 用Flash制作鬼火效果
  • 如果你中了五百万???!!!
  • 存储用可靠性打进医疗行业
  • 单机双Linux系统的安装
  • Acegi实现对象实例级权限控制的方法
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.