题目的主要信息:
- 对于考试成绩在0-100之间的直接输出
- 不满足就产生一个自定义异常,控制台输出一个错误信息"分数不合法"
具体做法:
我们查看自定义异常,需要一个构造函数,根据抛入的错误信息是字符串,我们直接用字符串构造这个异常,同时用super调用父类的函数构造。
在if判断成绩之前加入try-catch的异常处理语句,判断分数是否在0-100,如果在直接输出分数,否则抛出一个错误信息为"分数不合法"(字符串)的异常,处理异常部分即catch部分,直接用异常父类的getMessage方法获取异常信息,输出即可。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt();
try{
if(score >= 0 && score <= 100) //正常分数输出
System.out.println(score);
else
throw new ScoreException("分数不合法"); //抛出异常
}
catch(ScoreException str){
System.out.println(str.getMessage()); //输出异常
}
}
}
class ScoreException extends Exception{ //继承自异常类的分数异常处理类
public ScoreException(String message){ //构造函数
super(message); //输入异常信息
}
}
复杂度分析:
- 时间复杂度:,异常处理,直接输出,常数时间
- 空间复杂度:,无额外空间