《Java编程思想》(笔记12)-- 通过异常处理错误

是决定花一段连续的时间把《Java编程思想》看一遍,看书怎么能不做笔记呢,明明知道自己有些地方看完肯定会忘掉的,所以想把每章的笔记重点放在博客上,与大家共享!
第十二章 通过异常处理错误
Exception是java开发中非常重要的一个方面,运用的好坏直接决定开发人员是否能够编写出健壮鲁棒的程序。

1.异常链

这是我个人接触不多的概念,起源于JDK1.4。在进行一个异常处理时,又抛出另一个异常,这就会产生一个异常链条
该技术大多用于将checked exception封装成为unchecked exception或者RuntimeException。如果因为异常你决定抛出一个新的异常,你一定要包含原有的异常,这样程序才可以通过getCause()和initCause()方法来访问异常最终的根源。

2.异常处理过程

这个问题涉及到try…catch…finally…的执行顺序问题。
总的来说一下:
如果在try…中捕获到响应的异常,立即中断当前程序的执行,转去执行catch…中的内容,最后finally…的内容一定会执行,其中finally很大程度上用于资源的释放。
有几点需要开发人员注意:

  • 应当尽量避免在finally…中再次出现异常,一旦出现异常,代码执行会抛出finally…中的异常信息,忽略try…和catch…中的异常。
  • 尽量不要再finally…中使用return语句,如果使用了的话,会忽略try…和catch…中的返回语句,也会忽略其中的异常,屏蔽了错误的发生。
3.throw和throws的区别

简单来说,throw用来明确的抛出一个异常对象,用在方法体内;throws用来表明一个成员函数可能抛出的各种异常,只是一种可能性,不代表一定会发生。

4. 常见异常

例如NullPointerException(空指针异常),IndexOutOfBoundsException(数组下标越界异常),ClassCastException(数据类型转换异常),ClassNotFoundException(指定类找不到)…很多常见的异常及出现场景需要知道了解。

祝进步

猜你喜欢

转载自blog.csdn.net/zhaohancsdn/article/details/88842992