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(){} // 不带参数的构造函数
}