您的位置:首页 > 职场人生

黑马程序员 异常

2015-08-15 21:48 281 查看
——- android培训java培训、期待与您交流! ———-

1,异常概述

异常就是不正常的意思,指程序中出现的不正常情况。

2,异常情况的划分

Throwable:

Error(严重的):一般不对其进行编写针对性代码处理。

特点:是同Jvm抛出的严重性的问题。

通常出现重大问题如:运行的类不在在或者内存溢出等。

需修改程序。

Exceptoion(非严重的):用针对性的方式进行处理。

特点:需要处理,通常有两种方式:

(a)通过 try catch finally代码块

(b)通过throws在函数上声明

3,异常处理的格式:

try{

可能发生异常的代码;

}

catch(捕获异常类的对象 异常类引用变量){

处理代码;

}

finally{

一定要执行的语句;(通常用于关闭资源)

}

可以仅存在try和catch代码块或者try和finally代码块。

finally代码块特点:只在一种情况下不执行:System.exit(0)。

体现

public class IODemo {
public static void main(String[] args)  {
FileReader fr = null;
FileWriter fw = null;
try {
fw = new FileWriter("d:\\en.txt");
fr = new FileReader("c:\\en.txt");
char [] ch = new char[1024];
int len = 0;
while ((len = fr.read(ch) )!= -1) {
fw.write(ch,0,len);
fw.flush();
}
} catch (Exception e) {
System.out.println("失败");//处理异常
}
finally{
if (fw!=null)
try {
fw.close(); //处理异常
} catch (Exception e2) {
}
if(fr!=null)
try {
fr.close();     //finally代码块里面关闭资源
} catch (Exception e2) {
}
}
}
}


4,throw和throws的区别

(a)throws使用在函数上,并且后面跟的异常类,可以跟多个,用逗号隔开

(b)throw使用在函数内;后面跟的是异常对象;只能抛出一个异常对象名;表示抛出异常,由方法体内的语句处理

体现

class Demo{
public static int method(int[] arr,int index){
if(arr == null){
throw new NullPointException("数组为空");
}

if(index>arr.length){
throw new ArrayIndexOutOfBoundException("数组索引越界");
}

return arr[index];
}
}


5,异常的注意事项

(a)当异常被捕捉了以后,处理好异常,下面的语句还会继续执行

(b)当函数中异常发生,代表这个函数就已经结束了

(c)异常不能同时发生

(d)功能中有几个异常,那么就对应的就有几个catch

6,处理异常的几条原则

(a)函数内容如果抛出需要检测的异常,那么函数上必须要声明; 否则必须在函数内用try catch捕捉,否则编译失败。

(b)如果调用到了声明异常的函数,要么try catch要么throws,否则编译失败。如果调用的是复写父类的函数抛出异常,那么调用者只能抛出父类同样的异常,或者父类异常的子集

(c)功能内容可以解决,用catch;解决不了,用throws把异常告诉调用者,由调用者解决 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: