java语言在设计之初就提供了相对完善的异常处理机制,这种机制大大降低了编写和维护可靠程序的门槛,这也是java得以大行其道的原因。
exception与error
exception与error都继承自throwable类,在java中只有throwable类型的实例才可以被抛出(throw)或者捕获(catch)。exception和error体现了java平台设计人员对不同异常情况的分类。
error
error是指正常情况下不大可能出现的情况,绝大部分的error都会导致程序处于非正常的、不可恢复的状态。既然是非正常情况,所以不便于也不需要捕获,常见的如outofmemoryerror等。
exception
exception是程序正常运行中可以预料的意外情况,可以被捕获并进行相应的处理。
exception又分为检查(checked)异常和非检查(unchecked)异常。检查异常在源代码中必须显示的捕获,这是编译器检查的一部分。不检查异常就是所谓的运行时异常,类似nullpointerexception、arrayindexoutofbondsexception之类,通常是可以编码避免的逻辑错误,可以根据需要来自行判断是否需要捕获,不会在编译期进行检查。
异常处理
在日常编程中如何处理好异常?可以从以下两个方面着手。
1、理解throwable、exception、error的设计和分类。比如,掌握那些应用最广泛的子类,以及如何自定义异常等。
问:noclassdeffopnderror和classnotfoundexception有什么区别?
2、理解java语言中操作throwable的元素和实践。掌握基本语法是必须的,如try-catch-finally块,throw、throws关键字等,异常处理代码比较繁琐,比如我们需要写很多千篇一律的捕获代码,或者在finally做一些资源回收的工作。随着java语言的发展,引入了一些更加便利的特性,比如 try-with-resources和multiple catch等。
最佳实践
1、尽量不要捕获类似exception这样通用的异常,而是应该捕获特定异常。除非深思熟虑,否则不要直接捕获throwable或者error。
2、不要生吞(swallow)异常。生吞异常很可能会导致非常难以诊断的诡异情况,不利于异常排查和问题跟踪。
相关推荐
error和exception的详细介绍,彻底弄清这两者的关系与不同,帮助大家很好的使用
replace error code with exception
第一,理解 throwable、exception、error 的设计和分类 第二,理解 java 语言中操作 throwable 的元素和实践 第一,尽量不要
java中error与exception的区别.doc
第一,理解 throwable、exception、error 的设计和分类 第二,理解 java 语言中操作 throwable 的元素和实践 第一,尽量不要
exception 和 error 有什么区别? checked exception 和 unchecked exception 有什么区别? throwable 类常用方法有哪些? try-catch-finally 如何使用? finally 中的代码一定会执行吗? 如何使用 try-with-...
error与exception的区别查阅网上资料大多是java的解释,貌似php的异常处理过程与java差不多 java中的object继承结构如下: object—->throwable——–> exception —-> runtimeexception | error error都是unchecked...
捕获exception时,不会捕获error,像out of memory这种问题会在中间件的日志可以看到,访问程序也会报相应的错误,方便问题定位;捕获throwable时,会捕获exception和error,像out of memory这种问题也会被捕获到,...
java中error和exception的区别.pdf 学习资料 复习资料 教学资源
1. error 和 exception 区别是什么? 2. 运行时异常和一般异常(受检异常)区别是什么? 3. jvm 是如何处理异常的? 4. throw 和 throws 的区别是什么? 5. final、finally、finalize 有什么区别? 6. ...
error和exception有什么区别?
windows exception handling
exception: 1.可以是可被控制(checked) 或不可控制的(unchecked)。 2.表示一个由程序员导致的错误。 3.应该在应用程序级被处理。
类似rabitmq消息队列,可订阅消息发布消息,常用语物联网项目,mqtt类似rabitmq消息队列,可订阅消息发布消息,常用语物联网项目,mqtt
在使用eclipse的时候,有时候会弹出一个方框,里面的内容是unhandled event loop exception no more handles,当你点击ok的时候,又会出来一个方框,里面第一句话是 an swt error has occurred,并且诱导你关闭...
启动报错:验证加密狗无效 error:1001-mysql参数导致.docx
java就业面试题大全 面向对象的特征有哪些 overload 和override的区别 abstract class和interface有什么区别? error和exception有什么区别?
在 java 中的基本理念是 结构不佳的代码不能运行...我们写 java 程序经常会出现两种问题,一种是 java.lang.exception ,一种是 java.lang.error,都用来表示出现了异常情况,下面就针对这两种概念进行理解。 认识 exc
java面试宝典 经典题库 java中的异常处理机制的简单原理和应用 运行时异常与一般异常有何异同? error与exception有什么区别? jvm加载class文件的原理机制? …………