Bug、Defect、Error、Fault、Exception的区别

在电子管技术制造计算机的那个年代,那是计算机的主机重达数吨,并常常占据整个房间的时代。在某个实验室的某个平常的早晨,这个庞然大物突然停止了工作,我们的IT前辈们马上就开始寻找出现这种情况的原因。凭借设计图纸的引导,他们很快就圈定了可能发生问题的那一部分。在接下来的检查中,他们发现这次故障原来是一只虫子在经过两只继电器时造成了短路所致。在修复了计算机并重新开始工作之后,负责计算机维护的工程师把这次故障记录在了一份备忘录上,以便将来其他人遇到类似的情况可以迅速的找到答案。当然,他还写了一份文档给计算机的设计人员,希望以后在主机的散热孔那里可以加装一层更加细密的金属网,即不影响散热,又可以防止虫子爬到主机里。

    发现上面的区别了吗?一只虫子爬进主机引起短路的这个事件,更多的被我们称为Bug,这个名词一直从计算机硬件故障沿用到了计算机软件故障。那么Defect又是什么呢?

还是看上面的这个例子。真正的Defect是计算机维护工程师提出来的那个问题:在主机的散热孔那里可以加装一层更加细密的金属网,即不影响散热,又可以防止虫子爬到主机里。这是计算机设计人员疏忽的地方,是产品真正的Defect。而虫子引发的那个故障只是这个Defect导致的故障的其中一种表现形式。也就是说,Bug是Defect的一种表现形式,而一个Defect是可以引起多种Bug的。
 

弄懂这两个概念的区别,也就容易懂得Error、Fault和Exception的区别了。这三者一般在软件中表示出现的一些错误程度。一般认为,Error为普通级别的错误,这个错误在经过更加严格的修正后会马上解决。而Fault则认为是致命的错误,较之Error来说要严重很多,并且在短时间内来说不太容易解决。Exception一般认为是程序中可以拥有的一些异常分支,只是这些异常没有被截获,进行处理。
 

举个例子,飞机飞行在高度为10000米的天空中,空乘小姐发现厕所的水龙头没有关闭而导致一些水外流出来,流出的水由于没有防护装置而流到了乘坐区,影响了环境。当空乘小姐想去打扫乘坐区卫生时,扫了几下发现笤帚坏了。她需要来修理这个笤帚,而此时,机组人员报告飞机引擎坏了,所有人需要保持镇定,稳定情绪,并快速做好跳伞准备,飞机发生了致命的错误,随时会有生命危险。

这里的水龙头没有关闭影响了飞机内环境卫生就是Exception,而笤帚坏了则属于Error,飞机引擎坏了就是属于Fault。通过这个例子,我们也可以知道,软件出现了这三种类型的问题,首先处理Fault,其次是Error,最后才是Exception。
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值