javaSE 异常,自定义异常

时间:2022-10-11 00:41:23


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