1-定义一个异常类
2-如果是一个运行时异常:继承RuntimeException
如果是一个编译时异常:继承Exception
3-重写一个构造方法
4-使用 if(异常条件)throws new XXX(XXX)
5-通常搭配throws使用
除数不能为0
16/4is: 4
result of 15/7不是整数
除数不能为0
result of 86/8不是整数
找不到搭配
找不到搭配
2-如果是一个运行时异常:继承RuntimeException
如果是一个编译时异常:继承Exception
3-重写一个构造方法
4-使用 if(异常条件)throws new XXX(XXX)
5-通常搭配throws使用
public class NonIntResultException extends Exception {
int m;
int n;
NonIntResultException(int i,int j){
m=i;
n=j;
}
public String toString(){
return "result of "+m+"/"+n+"不是整数";
}
}
public class CustomExceptionDemo {
public static void main(String[] args) throws NonIntResultException{
int[] nums={9,5,16,15,48,86,93,21};
int[] denom={3,0,4,7,0,8};
for(int i=0;i<nums.length;i++){
try{
if(nums[i]%denom[i]!=0)throw new NonIntResultException(nums[i],denom[i]);
System.out.println(nums[i]+"/"+denom[i]+"is: "+nums[i]/denom[i]);
}catch(ArithmeticException e){
System.out.println("除数不能为0");
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("找不到搭配");
}catch(NonIntResultException e){
System.out.println(e);
}
}
}
}
运行结果:
9/3is: 3
除数不能为0
16/4is: 4
result of 15/7不是整数
除数不能为0
result of 86/8不是整数
找不到搭配
找不到搭配