Java 异常处理的捕获形式

来源:互联网 发布:俄罗斯人艺术造诣知乎 编辑:程序博客网 时间:2024/05/19 14:51
package day11;
/*异常处理的捕捉形式:
 * 这是可以对异常进行针对性处理的方式。
 * 
 * 具体格式是:
 * try{
 * //需要被检测异常的代码
 * }
 * catch(异常类 变量) //该变量用于接收发生的异常对象
 * {
 * //处理异常的代码
 * }
 * finally{
 * //一定会被执行的代码
 * }
 * 
 * 异常处理的原则:
 * 1、函数内容如果抛出需要检测的异常,那么函数上必须要声明。否则必须在函数内用trycatch捕捉,否则编译失败。
 * 2、如果调用到了声明异常的函数,要么trycatch要么throws,否则编译失败。
 * 3、什么时候catch,什么时候throws呢?功能内容可以解决,用catch。解决不了,用throws告诉调用者,由调用者解决。
 * 4、一个功能如果抛出了多个异常,那么调用时,必须有对应多个catch进行针对性的处理。
 * 内部又几个需要检测的异常,就抛几个异常,抛出几个,就catch几个。
 * 
 *  
 */

class FuShuIndexException extends Exception{
FuShuIndexException(){

}
}

class Demo{
public int method(int[] arr,int index) throws FuShuIndexException{
if(arr==null)
throw new NullPointerException("数组的引用不能为空");

if(index >= arr.length){
throw new ArrayIndexOutOfBoundsException("数组角标越界=" + index);
}

if(index < 0){
throw new FuShuIndexException();
}

return arr[index];
}
}

public class ExceptionDemo4 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] arr = new int[3];
Demo d = new Demo();
try{
int num = d.method(arr, -1);
System.out.println(num);
}catch(FuShuIndexException e){
System.out.println("message:" + e.getMessage());
System.out.println("String:" + e.toString());
System.out.println("负数角标");
e.printStackTrace();//jvm默认的异常处理机制就是调用异常对象的这个方法。
}
}
}
0 0