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

原创 2013年10月14日 22:45:04
《Java语言程序设计(基础篇)》读书笔记(四)
作者:wangzz
转载请注明出处
如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号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学习笔记(一)

    第一章  Java的概述    对于第一章,我觉得主要是了解到了Java的一些特点,知道了Java是以“面向对象(O-O)”为基础的一门语言。    一、主要的特点有:    01、简单性。J...
  • jacksonwj
  • jacksonwj
  • 2005年07月07日 10:51
  • 14917

java笔记

1、如何继承? 关键字extends 2、为什么要用extends? 因为子类可以有自己的机制 3、为什么要继承? 【1】去掉重复的代码 【2】提高扩展的效率 4、如何进行实例化? 【1】用new 【...
  • qq_33729889
  • qq_33729889
  • 2016年07月17日 17:13
  • 336

JAVA语言程序设计(基础篇)第十版

Queue类 import java.util.Arrays; public class Queue { private int[] element; private int size=8; Queu...
  • summerdream_
  • summerdream_
  • 2017年07月04日 09:06
  • 706

java语言程序设计基础篇第十一章编程练习题

1package yongheng; import java.util.Scanner;public class Main { public static void main(String a...
  • gyhguoge01234
  • gyhguoge01234
  • 2016年09月08日 22:19
  • 2338

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

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

Java笔记

配置java环境变量: JAVA_HOME:配置JDK的目录 CLASSPATH:指定到哪里去找运行时需要用到的类代码(字节码) PATH:指定可执行程序的位置 LINUX系统(在" .b...
  • diligentcat
  • diligentcat
  • 2015年04月16日 08:36
  • 1118

Java语言程序设计(基础篇)原书第十版 课后习题 第三章

// 3.11 Scanner input = new Scanner(System.in); System.out.print("Enter a month and a year:");...
  • zjjoebloggs
  • zjjoebloggs
  • 2015年10月06日 21:58
  • 7666

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

1.在使用System.in时 需要使用a.close(); 否则输入流没有关闭,是不够严谨的。 package chapter02; import java.util.Scanner; public...
  • qq_24653023
  • qq_24653023
  • 2016年06月15日 22:51
  • 12459

Java复习笔记

java是一门很好的语言,也是一门庞杂的系统,学习过程中要善于记录和积累。  学习了四年java,但回头看看好像什么都没学到,是因为学习没有成系统,知识没有成系统。...
  • ningning258
  • ningning258
  • 2015年07月18日 11:54
  • 4679

java笔记

大家好,这是我第一次写博客,因为是刚开始学习java,之前学了一段时间,写了个总结,有点乱,还请大家多多baohan,希望能和大家一起愉快的学习!...
  • weixin_36052188
  • weixin_36052188
  • 2016年09月05日 10:14
  • 945
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《Java语言程序设计(基础篇)》读书笔记(四)
举报原因:
原因补充:

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