黑马程序员 异常
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)。
体现
4,throw和throws的区别
(a)throws使用在函数上,并且后面跟的异常类,可以跟多个,用逗号隔开
(b)throw使用在函数内;后面跟的是异常对象;只能抛出一个异常对象名;表示抛出异常,由方法体内的语句处理
体现
5,异常的注意事项
(a)当异常被捕捉了以后,处理好异常,下面的语句还会继续执行
(b)当函数中异常发生,代表这个函数就已经结束了
(c)异常不能同时发生
(d)功能中有几个异常,那么就对应的就有几个catch
6,处理异常的几条原则
(a)函数内容如果抛出需要检测的异常,那么函数上必须要声明; 否则必须在函数内用try catch捕捉,否则编译失败。
(b)如果调用到了声明异常的函数,要么try catch要么throws,否则编译失败。如果调用的是复写父类的函数抛出异常,那么调用者只能抛出父类同样的异常,或者父类异常的子集
(c)功能内容可以解决,用catch;解决不了,用throws把异常告诉调用者,由调用者解决 。
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把异常告诉调用者,由调用者解决 。
相关文章推荐
- 黑马程序员——Java概述
- 黑马程序员----IO流(字符流、字节流、转换流)
- 杭州之行
- 黑马程序员----静态(static)
- 黑马程序员----类加载器(ClassLoader)
- 笔试面试错题集2
- 黑马程序员一一封装,继承,多态的一个基本概述
- 黑马程序员——Java基础03
- 9个Java初始化和回收的面试题
- 黑马程序员——IO流与File类
- 黑马程序员 内部类
- 黑马程序员-----java基础之数组及堆和栈
- 黑马程序员----集合(Map)
- 黑马程序员----集合(Collection)
- 黑马程序员----泛型(Generic)
- 黑马程序员----集合工具类(Arrays和Collections)
- 黑马程序员——Java基础02
- 黑马程序员----多线程
- 黑马程序员——java基础_多线程
- 十道海量数据处理面试题与十个方法大总结