Bug、Defect(缺陷)、Error、Fault、Exception的区别

今天在做软件开发和测试过程中,突然想起来需要明了一些概念。有关Bug、Defects、Error、Fault、Exception的区别?

于是乎,记得之前在一本书上看到过一个故事,说的是bug和defect的由来。今天暂且也列举到这里:

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

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

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

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

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

这里的水龙头没有关闭影响了飞机内环境卫生就是Exception,而笤帚坏了则属于Error,飞机引擎坏了就是属于Fault。通过这个例子,我们也可以知道,软件出现了这三种类型的问题,首先处理Fault,其次是Error,最后才是Exception。

在我看来Error、Fault、Exception都是Bug的一些类型,根据轻重,你可以处理它。

参考资料:

http://www.cnblogs.com/jackei/archive/2005/01/12/90976.html?logined=1

Bug、Defect(缺陷)、Error、Fault、Exception的区别相关推荐

  1. [安卓】Error和Exception的区别

    Error和Exception的区别: Error:错误,一般是指程序或者虚拟机之类产生的无法依靠修改代码能够解决的问题,例如虚拟机无法正常运行等等. 典型的两个Error 1) OutofMemor ...

  2. java error与exception_Java中Error与Exception的区别

    Error类和Exception类都继承自Throwable类. Error的继承关系: Exception的继承关系: 二者的不同之处: Exception: 1.可以是可被控制(checked) ...

  3. Error和Exception的区别

    Error:值得是指与虚拟机相关的问题,比如虚拟机崩溃,虚拟机错误,内存空间不足,方法调用栈溢出. 对于这类错误应建议中断. Exception:是指程序员可以处理的异常,可以捕获并且能够恢复,遇到这 ...

  4. java中error和exception的区别

    Error类和Exception类的父类都是throwable类,他们的区别是: Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等.对于这类错误的导致的应用 ...

  5. error与exception的区别

    https://blog.csdn.net/iblade/article/details/78196016 erro,java虚拟机抛出,大多数错误与代码编写者所执行的操作无关. expection, ...

  6. java exception源码_Java异常之 Error 和 Exception

    简单了解 Java 异常 1.实际工作中,遇到的情况不可能是非常完美的. 比如:你写的某个模块,用户输入不一定符合你的要求: 你的程序要打开某个文件,这个文件可能不存在或者文件格式不对: 你要读取数据 ...

  7. Error和Exception(异常)

    Error和Exception(异常) 掌握以下三种类型的异常: 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的.例如打开一个不存在文件时,一个异常就发生了,这些异常 ...

  8. Error与Exception的异常定义以及简介(简单理解介绍是为了下一节的异常处理与捕捉)

    什么是异常? 实际工作中,遇到的情况不可能是非常完美的.比如:你写的某个模块,用户输入不一定符合你的要求,你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空 ...

  9. Java异常之 Error 和 Exception

    简单了解 Java 异常 1.实际工作中,遇到的情况不可能是非常完美的. 比如:你写的某个模块,用户输入不一定符合你的要求: 你的程序要打开某个文件,这个文件可能不存在或者文件格式不对: 你要读取数据 ...

  10. 异常Error和Exception

    异常 Error和Exception 程序在运行过程中很可能遇到一些意外,即错误Error和异常Exception 异常指程序运行中出现的不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等 ...

最新文章

  1. JS打印指定区域内容
  2. (转载)hadoop(13) 添加或删除datanode节点
  3. 【Git】Git 分支管理 ( 使用 git cherry-pick 命令提取提交记录应用于当前分支 | 创建新分支应用某个提交 | git cherry-pick 冲突处理 )
  4. SpringMVC教程--图片上传
  5. Spring3+ibatis (SQL Server)+pager-taglib.tld查询分页的实现
  6. 再写堆(堆的性质,向下调整,建堆,堆的插入删除初始化,堆排序,TopK问题)
  7. 中科院C语言应聘机试编程题6,中科院计算所保研笔试+机试+面试经验分享
  8. php按id获取整条数据库,Ajax取得数据库的json值,想通过id获取对应信息,但是都默认获取第一条了...
  9. 推荐!ICDAR 2019-ArT任意形状文字识别国际竞赛!奖金丰厚
  10. 信息化、数字化和数字化转型的本质是什么?
  11. 关于深度学习编译器,这些知识你需要了解一下
  12. mpvue配置底部菜单栏图标路径报错
  13. [Altium Designer 2020 硬件设计]PCB封装库创建及3D模型添加
  14. Ubuntu阿里源镜像
  15. UWB是什么技术,主要的技术特点是什么?
  16. Kanzi入门学习(二)
  17. VMware-KVM安装
  18. 如何开发⼀款移动端 Libra 钱包
  19. 数学之美:数学究竟是如何被运用到生活中的?
  20. 逆透视变换车道线检测

热门文章

  1. b temia 外骨骼机器人_纬创医学与加拿大B-Temia公司合作推出下肢外骨骼机器人...
  2. C语言:fflush()的用法以及缓冲区的概念
  3. 字节跳动Data数据平台/数据分析招聘
  4. Towards Accurate Scene Text Recognition with Semantic Reasoning Networks
  5. 找工作杂谈(一)2019年春招复习资料总结
  6. 网页在线视频播放大全
  7. Module “*” must not contain source root *. The root already belongs to module “*”
  8. 爱了爱了!ALIENWAER外星人AW410K机械键盘Cherry茶轴RGB灯光全键无冲!免费包邮送到家!...
  9. 20190604第二次月考
  10. 计算机公共课4-电子表格系统 Excel 2010