Java学习笔记-6.Java异常处理
2015-02-22 16:33
253 查看
一、异常简介
1.异常:程序在运行过程中有时会出现一些意外的情况导致程序退出的情况
2.一个异常是由一个对象来表示的,所有的异常都直接或间接地继承自Throwable接口
Throwable接口是类库java.lang包中的一个类,它派生出两个子类:Error 和 Exception
(1)Error类主要用来描述一些Java运行时系统内部的错误或资源枯竭导致的错误,此类错误一般由系统进行处理,一般程序本身不需要捕获和处理
(2)Exception类分为RuntimeException异常 和 非RuntimeException异常
RuntimeException异常:属于程序缺陷异常,是设计或实现上的问题,此类问题应避免而且可以不捕获,但为保证程序在出错后依然可以执行,在开发时最好用try…catch处理
非RuntimeException异常:由程序外部问题引起的异常,在语法上要求必须处理,否则不能通过编译,称为受检异常
3.常用异常类(都继承于Exception类,这些异常类各自代表了一种特定的错误)
4.用户自定义异常类(必须继承自Throwable 或 Exception类(建议))
格式:
2.一个异常是由一个对象来表示的,所有的异常都直接或间接地继承自Throwable接口
Throwable接口是类库java.lang包中的一个类,它派生出两个子类:Error 和 Exception
(1)Error类主要用来描述一些Java运行时系统内部的错误或资源枯竭导致的错误,此类错误一般由系统进行处理,一般程序本身不需要捕获和处理
(2)Exception类分为RuntimeException异常 和 非RuntimeException异常
RuntimeException异常:属于程序缺陷异常,是设计或实现上的问题,此类问题应避免而且可以不捕获,但为保证程序在出错后依然可以执行,在开发时最好用try…catch处理
非RuntimeException异常:由程序外部问题引起的异常,在语法上要求必须处理,否则不能通过编译,称为受检异常
3.常用异常类(都继承于Exception类,这些异常类各自代表了一种特定的错误)
系统定义的运行异常 | 异常对应的系统运行错误 |
ClassNotFoundException | 未找到相应的类 |
ArrayIndexOutOfBoundsException | 数组越界 |
FileNotFoundException | 未找到指定的文件或目录 |
IOException | 输入、输出错误 |
NullPointException | 引用空的尚无内存空间的对象 |
ArithmeticException | 算术错误 |
InterruptedException | 一线程被其他线程打断 |
UnknownHostException | 无法确定主机的IP地址 |
SecurityException | 安全性的错误 |
MalformedURLException | URL格式错误 |
格式:
class MyException extends Exception { public MyException() { super(); ... } public MyException(String s) { super(s); ... } public String toString() { return("..."); ... } }
二、Java异常处理机制
1.抛出和声明异常:Java程序在运行时如果引发了一个可以识别的错误,就会产生一个与该错误相应的异常类的对象,这个过程叫做异常的抛出
抛出异常格式:
修饰符 返回类型 方法名 (参数列表) throws 异常类名列表 { //声明异常
…
throw 异常类名; //抛出异常
…
}
当方法抛出异常后,该方法就不能返回到其调用者,而是进入异常处理块中
2.捕捉异常:接受被抛出的异常对象
具体格式:
try { //接受监视的程序块,在此区域内发生 //的异常,由catch中指定的程序处理 } catch (异常类名1 异常形式参数名) { //处理异常 } catch (异常类名2 异常形式参数名) { //处理异常 } ... finally { //最终处理,每次执行的代码 }
注意:(1)虽然Exception捕捉的范围最大,不管出现任何异常时都可以直接使用Exception进行处理,但是多个异常最好分别进行捕获,而不是直接使用Exception捕获全部异常
(2)安排多个异常的多个catch语句顺序时,常见异常应放在前面
(3)捕获异常范围小的异常必须放在捕获范围大的异常之前,否则程序编译会出错
(4)finally语句为异常处理提供一个统一的出口,无论try所指定的程序块中是否抛出异常,也无论catch语句的异常类型是否与所抛出的异常类型匹配,finally所指定的代码都要被执行,它提供了统一的出口
(5)通常在finally语句中可以进行资源的清除工作,如关闭打开的文件和关闭数据流等
相关文章推荐
- java学习笔记8——异常处理
- JAVA学习笔记(第八章异常处理)
- Java 学习笔记(0x0E) 异常处理
- 异常处理——毕向东Java基础教程学习笔记
- Java学习笔记--异常处理
- java学习笔记 异常处理
- java学习笔记七——异常处理
- java学习笔记9——异常处理
- Java学习笔记之异常处理
- java学习笔记---java异常处理
- JAVA学习笔记整理四(异常处理)
- Java学习笔记--------异常处理
- 【Java学习笔记】17.异常处理
- 【Java】学习笔记——异常处理
- java 学习笔记8-异常处理
- Java学习笔记(49)------------异常处理机制
- 【Java学习笔记】异常处理
- Java学习笔记 12 异常处理
- Java基础学习笔记十八 异常处理
- Java学习笔记(异常处理)