《Java语言程序设计(基础篇)》读书笔记(四)

原创 2013年10月14日 22:45:04
《Java语言程序设计(基础篇)》读书笔记(四)
作者:wangzz
原文地址:http://blog.csdn.net/wzzvictory/article/details/12717381
转载请注明出处
如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,谢谢!

第十三章 异常处理
这是我所了解的语言都有的一个机制,重要程度不言而喻。
1、Java中异常类型
Java API中有很多预定义的异常类,如下图所示:

从图中可以看出,Throwable类是所有异常类的跟类。图中所示的异常类可以分为三种主要类型:
①系统错误(system error)
是由Java虚拟机抛出的,用图中的Error类表示。Error类描述的是内部系统错误,一旦发生,除了尽量稳妥地终止程序外,啥都干不了。
②异常(exception)
用图中的Exception类表示,它描述的是由程序内部和外部环境所引起的错误,这些错误能被捕获和处理。
③运行时异常(runtime exception)
用RuntimeException类表示,是Exception的子类。描述的是程序设计错误,通常都是有Java虚拟机抛出的,

2、免检异常和必捡异常
①免检异常
RuntimeException、Error以及它们的子类都称为免检异常,编译器不检查处理它们,程序员也可以不处理它们,当出现这样的异常时,总是由虚拟机接管。出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码,如果该异常没有被处理,程序将会终止。
②必检异常
除了免检异常以外的都是必检异常,编译器会强制程序员检查并处理它们

3、声明和抛出异常
①声明异常
每个方法都必须显式声明它可能抛出的必检异常的类型,因为任何代码都可能发生系统错误和运行时错误,所以Java不要求显式声明Error和RuntimeException类型的免检异常。
在方法中声明异常,就要在方法头中使用关键字throws。
需要注意的是,如果方法在父类中没有声明异常,那么就不能在子类中对其进行覆盖来声明异常
②抛出异常
当程序中发生错误时,可以建立一个异常并通过throw关键字将其抛出。

声明并抛出一个异常的方式如下所示:
public void myMethod() throws IOException { //声明异常
  if(an error occurs) {
    throw new Exception();//抛出异常
  }
}
提示:声明异常的关键字是throws,抛出异常的关键字是throw

4、处理异常
语法如下:
try {
  statements;
}
catch (TheException ex) {
  handling ex;
}
finally {
  finalStatements;
}
各种语言处理异常的方式都大同小异。有下面几点需要说明:
①finally中的语句无论有没有异常发生都会执行,而且哪怕finally块前面有个return语句,还是会执行,足够牛叉吧;
②catch中的语句只有在try中语句出现异常才会执行;
③try中是可能出现异常的功能代码。

5、何时使用异常
由于异常处理是需要耗费系统资源的,不应该将其简单的用于逻辑测试,使用需谨慎。

未完待续。。。

相关文章推荐

《Java语言程序设计(基础篇)》读书笔记 完结篇

第十八章 applet和多媒体 Java通过AWT中的Applet类提供了一个开发applet程序的基本框架结构。 1、applet应用和Java GUI应用 区别: ①Java GUI程序直接运行在...

《Java语言程序设计(基础篇)》读书笔记(三)

《Java语言程序设计(基础篇)》读书笔记(三) 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/12676811 ...

《Java语言程序设计(基础篇)》读书笔记(五)

《Java语言程序设计(基础篇)》读书笔记(五) 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/12719791 ...

读书笔记--Java语言程序设计基础12章异常-1

异常的种类: 1、1、异常的分类有三种:系统错误(System Error)、异常(Exception)和运行时异常(RunTimeException)。 a)系统错误:即虚拟机产生的内部...

java语言程序设计(进阶篇)读书笔记 之 数据结构每天一小练--堆(一)

堆是一种特殊的完全二叉树,它要求每个节点都大于或等于它的一个子节点 由于二叉树的性质可知 1,一个节点的父节点(i)的位置在:(i-1) / 2 2,一个节点的坐子节点(i)的位置为...

Java语言程序设计 【基础篇】 【学习笔记】

1.在使用System.in时 需要使用a.close(); 否则输入流没有关闭,是不够严谨的。 package chapter02; import java.util.Scanner; public...

《java语言程序设计-基础篇》笔记一

第一章、计算机、程序和java概述 中央处理器 CPU由两部分组成:控制单元和算术/逻辑单元 控制单元用于控制和协调除CPU之外其他组件的动作 算术/逻辑单元用于完成数值运算和逻辑运算 每台...

《java语言程序设计基础篇》笔记二

第15章、图形 graphics类是一个提供与设备无关的图形界面的抽象类,它可以在不同平台的屏幕上显示图形和图像 面板是不可见的,它们用作一个小型容器,这个容器将组件进行分组获得所需的布局...

Java语言程序设计(基础篇)- 笔记(持续更新中)

用方法传递对象参数 给方法传递一个对象,是将对象的引用传递给方法。 Java只有一种参数传递方式:值传递(pass-by-value) 当传递基本数据类型参数时,传递的是实参的值,不会改变原始的值; ...

java程序设计与问题解决(基础篇)-读书笔记-1

Java编译器将Java程序翻译成字节码,字节码是是一台假想计算机的机器语言,这台假想计算机就是Java虚拟机,解释器将字节码逐条翻译成机器语言,Java虚拟机负责翻译及运行Java字节码 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《Java语言程序设计(基础篇)》读书笔记(四)
举报原因:
原因补充:

(最多只允许输入30个字)