用户名同QQ号

 

java之自定义异常

父类

 1 package com.oracle.demo01;
 2 
 3 import java.sql.SQLException;
 4 
 5 public class Fu {
 6 public void f() throws SQLException{
 7     
 8 }
 9 public void ff(){
10     
11 }
12 }

子类继承父类异常  只能抛出比父类异常小的异常

 1 package com.oracle.demo01;
 2 
 3 import java.sql.SQLException;
 4 
 5 public class Zi extends Fu {
 6     //重写父类方法时,父类的异常可以不抛,或者抛比父类异常小的异常
 7    public void f() throws SQLException{//这些是java类中,将问题封装成对象
 8                                        //可以自定义异常,可以通过集成。想让    A拥有B的特点,那么A继承B
 9        
10    }
11    //父类无异常,
12    public void ff(){//不能throws抛异常,只能内部处理异常
13        try {
14         f();
15     } catch (SQLException e) {
16         // TODO Auto-generated catch block
17         e.printStackTrace();
18     }
19        
20    }
21 }

自定义异常

package com.oracle.demo01;

public class ZiDingYi {
public static void main(String[] args) {
    int[] arr={1,-2,3,4,5};
    //自定义异常,成绩不能为负
    System.out.println(avg(arr));
}
//求学生成绩的平均值
public static double avg(int[] arr){
    int sum=0;
    for(int i=0;i<arr.length;i++){
        //自定义负数异常,需要判断是编译期异常还是运行期异常(为用户提示)
        if(arr[i]<0){//集合为get(i)
            //运行期异常只需要抛出
            throw new FuShuException("您的数组中有负数"+i);
        }
        sum+=arr[i];
    }
   double avg=sum/arr.length;
   return avg;
}
}

自定义异常

package com.oracle.demo01;
//自定义异常
public class FuShuException extends RuntimeException {
//默认无参构造,需要同时增加空参和有参构造
    public FuShuException(String mes){
        super(mes);//用父类的方法,打印异常信息
    }
    public FuShuException(){
        
    }
}

调用异常方法、

 1 package com.oracle.demo01;
 2 
 3 public class ZiDingYi {
 4 public static void main(String[] args) {
 5     int[] arr={1,-2,3,4,5};
 6     //自定义异常,成绩不能为负
 7     System.out.println(avg(arr));
 8 }
 9 //求学生成绩的平均值
10 public static double avg(int[] arr){
11     int sum=0;
12     for(int i=0;i<arr.length;i++){
13         //自定义负数异常,需要判断是编译期异常还是运行期异常(为用户提示)
14         if(arr[i]<0){//集合为get(i)
15             //运行期异常只需要抛出
16             throw new FuShuException("您的数组中有负数"+i);
17         }
18         sum+=arr[i];
19     }
20    double avg=sum/arr.length;
21    return avg;
22 }
23 }

posted on 2020-01-06 10:37  用户名同QQ号  阅读(332)  评论(0编辑  收藏  举报

导航