1)让程序员把异常处理代码从常规代码中分离出来,增加了可读性;
2)程序员可以按异常类型和差别进行分组,即从预定义的类Exception中派生自己的子类,对无法预测的异常也可以进行捕获和处理,客服了传统方法中错误信息有限的问题;
3)异常的处理借助于调用堆栈按先近后远的原则进行。
二、使用异常机制的情况
1)当方法因为自身无法控制的原因而不能完成其任务;
2)文件不存在,网络连接无法建立等;
3)处理在方法、类库、类中抛出的异常;
4)在大的项目中采用统一的方式处理异常时;
5)编写文字处理器一类的程序等;
6)不经常发生但却可能发生的故障。
三、try,catch和finally语句的格式
try{
//此处为抛出具体异常的代码
} catch(EXceptionType1 e){
//抛出ExceptionType1异常时要执行的代码
} catch(EXceptionType2 e){
//抛出ExceptionType2异常时要执行的代码
}
……
catch(EXceptionTypek e){
//抛出ExceptionTypek异常时要执行的代码
}finally{
//必须执行的代码(除非在try内执行了System.exit())
}
四、公共异常
1)ArithmeticException:整数除法中,除数为0。
2)NullPointerException:有一个对象还没有实例化。
3)NegativeArraySizeException:创建数组时,如果元素个数是个负数。
4)ArrayIndexOutOfBoundsException:数组下标越界。
5)SecurityException:该类异常一般在浏览器内抛出。若Applet试图进行访问本地文件;打开一个套接口,而不是返回到提供Applet的主机;在运行时环境中运行另一个程序。
6)ArrayStoreException:程序试图存取数组中错误的数组类型。
7)FileNotFoundException:试图存取一个并不存在的文件时发生该异常。
8)IOException:该异常是指通常的I/O错误。