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

来源:互联网 发布:网址导航手机版 源码 编辑:程序博客网 时间:2024/06/05 18:17
《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、何时使用异常
由于异常处理是需要耗费系统资源的,不应该将其简单的用于逻辑测试,使用需谨慎。

未完待续。。。

原创粉丝点击