bug和缺陷的区别
发现上面的区别了吗?一只虫子爬进主机引起短路的这个事件,更多的被我们称为Bug,这个名词一直从计算机硬件故障沿用到了计算机软件故障。那么缺陷又是什么呢?
还是看上面的这个例子。真正的缺陷是计算机维护工程师提出来的那个问题:在主机的散热孔那里可以加装一层更加细密的金属网,即不影响散热,又可以防止虫子爬到主机里。这是计算机设计人员疏忽的地方,是产品真正的缺陷。而虫子引发的那个故障只是这个缺陷导致的故障的其中一种表现形式。也就是说,Bug是缺陷的一种表现形式,而一个缺陷是可以引起多种Bug的。
弄懂这两个概念的区别,也就容易懂得Error、Fault和Exception的区别了。这三者一般在软件中表示出现的一些错误程度。一般认为,Error为普通级别的错误,这个错误在经过更加严格的修正后会马上解决。而Fault则认为是致命的错误,较之Error来说要严重很多,并且在短时间内来说不太容易解决。Exception一般认为是程序中可以拥有的一些异常分支,只是这些异常没有被截获,进行处理。
举个例子,飞机飞行在高度为10000米的天空中,空乘小姐发现厕所的水龙头没有关闭而导致一些水外流出来,流出的水由于没有防护装置而流到了乘坐区,影响了环境。当空乘小姐想去打扫乘坐区卫生时,扫了几下发现笤帚坏了。她需要来修理这个笤帚,而此时,机组人员报告飞机引擎坏了,所有人需要保持镇定,稳定情绪,并快速做好跳伞准备,飞机发生了致命的错误,随时会有生命危险。
这里的水龙头没有关闭影响了飞机内环境卫生就是Exception,而笤帚坏了则属于Error,飞机引擎坏了就是属于Fault。通过这个例子,我们也可以知道,软件出现了这三种类型的问题,首先处理Fault,其次是Error,最后才是Exception。
在我看来Error、Fault、Exception都是Bug的一些类型,根据轻重,你可以处理它。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lejuo/archive/2009/02/17/3901541.aspx