您的位置:首页 > 编程语言 > Java开发

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类,这些异常类各自代表了一种特定的错误)

系统定义的运行异常异常对应的系统运行错误
ClassNotFoundException未找到相应的类
ArrayIndexOutOfBoundsException数组越界
FileNotFoundException未找到指定的文件或目录
IOException输入、输出错误
NullPointException引用空的尚无内存空间的对象
ArithmeticException 算术错误
InterruptedException一线程被其他线程打断
UnknownHostException无法确定主机的IP地址
SecurityException安全性的错误
MalformedURLExceptionURL格式错误
4.用户自定义异常类(必须继承自Throwable 或 Exception类(建议))

格式:

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语句中可以进行资源的清除工作,如关闭打开的文件和关闭数据流等

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: