博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Error 和 Exception的区别
阅读量:6845 次
发布时间:2019-06-26

本文共 1308 字,大约阅读时间需要 4 分钟。

hot3.png

错误和异常的区别(Error vs Exception) 

今天面试问了这样一个问题,"Error" 和 "Exception"之间有啥区别?我觉得挺有意思,但是似乎又不能脱口而出。查找了一番资料之后,稍微总结了一下。
1)  error都是继承自父类java.lang.Error,而exception都继承自java.lang.Exception.

2)  再看看JDK中对于java.lang.Error和java.lang.Exception的解释。

    java.lang.Error: An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch. Most such errors are abnormal conditions. 即:Error是Throwable的子类,用于标记严重错误。合理的应用程序不应该去try/catch这种错误。绝大多数的错误都是非正常的,就根本不该出现的。     java.lang.Exception: The class Exception and its subclasses are a form of Throwable that indicates conditions that a reasonable application might want to catch. 即Exception 是Throwable的一种形式的子类,用于指示一种合理的程序想去catch的条件。即它仅仅是一种程序运行条件,而非严重错误,并且鼓励用户程序去catch它。
3)  Error和RuntimeException 及其子类都是未检查的异常(unchecked exceptions),而所有其他的Exception类都是检查了的异常(checked exceptions).
checked exceptions: 通常是从一个可以恢复的程序中抛出来的,并且最好能够从这种异常中使用程序恢复。比如FileNotFoundException, ParseException等。
unchecked exceptions: 通常是如果一切正常的话本不该发生的异常,但是的确发生了。比如ArrayIndexOutOfBoundException, ClassCastException等。从语言本身的角度讲,程序不该去catch这类异常,虽然能够从诸如RuntimeException这样的异常中catch并恢复,但是并不鼓励终端程序员这么做,因为完全没要必要。因为这类错误本身就是bug,应该被修复,出现此类错误时程序就应该立即停止执行。 因此,面对Errors和unchecked exceptions应该让程序自动终止执行,程序员不该做诸如try/catch这样的事情,而是应该查明原因,修改代码逻辑。

转载于:https://my.oschina.net/u/1861837/blog/340858

你可能感兴趣的文章
苹果还要与雅虎搜索合作?梅耶尔已经确认
查看>>
爱立信携Trukcell进行5G测试 实现24.7Gbps下载速度
查看>>
云翌通信联合方位、鼎信在杭州、北京的产品交流会圆满结束
查看>>
模块化数据中心的多种形式
查看>>
智能家居何以成CES必争之地?
查看>>
爱立信前CEO卫翰思加入Verizon 负责网络和技术部门
查看>>
来看看Win32资源监视器在Fluent Design设计语言下的样子
查看>>
物联网再升级 物联智慧MWC推新IoT方案
查看>>
云存储呼唤软实力
查看>>
惠州云计算智能终端产值 力争5年后达3000亿
查看>>
RocketMQ架构模块解析
查看>>
物联网时代需要开放、好用及可信的平台
查看>>
Android Monkey测试
查看>>
Intel芯将整合雷电技术 未来MBP因此便宜点
查看>>
常见物联网近距离无线通信技术解析
查看>>
《嵌入式 Linux C 语言应用程序设计(修订版)》——2.2 嵌入式Linux编辑器vi的使用...
查看>>
黑客发现 Adobe Flash 播放器第二个零日漏洞
查看>>
Docker —— 用于统一开发和部署的轻量级 Linux 容器 【已翻译100%】
查看>>
《初级会计电算化应用教程(金蝶KIS专业版)》——1.3 电算化会计信息系统
查看>>
Android 开发者应该使用 FlatBuffers 替代 JSON ?
查看>>