1.输入一个1 ~7之间的整数表示星期几,输出对应的英文单词(表示星期几)。要求捕获以下异常:类型不匹配异常,如输入的是字符串等输入的数值范围不合理,如>7, 或<=0
import java.util.*;
public class Homework5_1 {
public static void main(String[] args) {
int day;
Scanner in=new Scanner(System.in);
System.out.println("输入数字:");
try {
day=in.nextInt();
if(day>7||day<=0)
throw new OutOfRangeException();
System.out.println(Day(day));
}catch(InputMismatchException e) {
System.out.println("输入数据类型不匹配");
}catch (OutOfRangeException e) {
System.out.println(e.getMessage());
}
}
public static String Day(int day) {
String s = null;
if (day==1)
s="Monday";
else if(day==2)
s="Tuesday";
else if(day==3)
s="Wednesday";
else if(day==4)
s="Thursday";
else if(day==5)
s="Friday";
else if(day==6)
s="Saturday";
else if(day==7)
s="Sunday";
return s;
}
}
class OutOfRangeException extends Exception{
OutOfRangeException(){
super("数值不在正常范围内");
}
}
2.自定义一个异常类,用来表示成绩的平均值低于60分,要求具有一个无参和一个带有参数的构造方法,并覆盖getMessage方法。 在测试类中定义一个静态方法,参数是数组,功能用于计算数组元素的平均值,并可能抛出异常,在主方法中定义一个成绩数组,调用静态方法,并捕获异常。
public class FailedException extends Exception {
double score;
FailedException(){
}
FailedException(double score){
this.score=score;
}
public String getMessage() {
String s="班级平均分为"+score+",平均分不及格!";
return s;
}
}
测试类
package homework5;
import java.util.Scanner;
public class TextFailedException {
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
int n;
double aver;
System.out.println("学生个数:");
n=in.nextInt();
double[] scores=new double[n];
System.out.println("输入成绩:");
try {
for(int i=0;i<n;i++) {
scores[i] = in.nextDouble();
}
aver=getAverage(scores);
if(aver<60) {
throw new FailedException(aver);
}
System.out.println("班级平均分为:"+scores);
}catch(FailedException e) {
System.out.println(e.getMessage());
}
}
static Double getAverage(double a[]) {
int n=a.length;
double sum=0;
double average=0;
for(int i=0;i<n;i++) {
sum=sum+a[i];
}
average=sum/n;
return average;
}
}
|