Test.java(测试类):
package cn.xxx.demo; public class Test { public static void main(String[] args) { int avg = getAvg(50,60,-70,80); System.out.println(avg); } /* * 传递成绩,计算成绩的平均数 * 成绩没有负数,需要抛出异常,停止运算 */ public static int getAvg(int...source){ int sum = 0 ; for(int s : source){ if( s < 0){ throw new FuShuException("成绩错误 "+s); // 抛出自定义异常 (运行时异常,不需要throws声明) } sum = sum + s; } return sum/source.length; } }FuShuException.java(自定义的异常类):
package cn.xxx.demo; /* * 自定义异常 * 继承Exception,或者继承RuntimeException * 构造方法中,super将异常信息,传递给父类 */ public class FuShuException extends RuntimeException{ // 继承Exception或其子类 public FuShuException(String s){ // 带参数的构造函数 super(s); // 调用父类的带参构造函数 } public FuShuException(){} // 不带参数的构造函数 }