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 }