package day11;
/*
* 对于角标是整数不存在,可以用角标越界表示,对于负数为角标的情况,准备用负数角标异常来表示。
* 负数角标这种异常在java中并没有定义过。
* 那就按照java异常的创建思想,面向对象,将负数角标进行自定义描述,并封装成对象。
* 这种自定义的问题描述成为自定义异常。
*
* 注意:如果让一个类称为异常类,必须要继承异常体系,因为只有称为异常体系的子类才有资格具备可抛性。才可以被两个关键字所操作,throws throw
*/
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 ExceptionDemo3 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] arr = new int[3];
Demo d = new Demo();
int num = d.method(arr, 30);
System.out.println(num);
}
}
/*
* 对于角标是整数不存在,可以用角标越界表示,对于负数为角标的情况,准备用负数角标异常来表示。
* 负数角标这种异常在java中并没有定义过。
* 那就按照java异常的创建思想,面向对象,将负数角标进行自定义描述,并封装成对象。
* 这种自定义的问题描述成为自定义异常。
*
* 注意:如果让一个类称为异常类,必须要继承异常体系,因为只有称为异常体系的子类才有资格具备可抛性。才可以被两个关键字所操作,throws throw
*/
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 ExceptionDemo3 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] arr = new int[3];
Demo d = new Demo();
int num = d.method(arr, 30);
System.out.println(num);
}
}