为考试成绩类创建例外

时间:2019-04-18 02:05:43

标签: java exception

我创建了一个名为TestScores的类,该类具有一种获取我在数组中拥有的测试数的平均值的方法。然后,我需要创建一个InvalidTestScore异常类并重写我的TestScores类,以便能够引发InvalidTestScore异常。我本来可以正确地做所有事情,但是却得到“实际和形式上的论点在长度误差上有所不同”。我是编程新手,所以需要帮助

public  int getAverage() throws InvalidTestScore
    {

        int total = 0;

        int average = 0;

        for(int index = 0; index < scores.length; index++)
        {
            total += scores[index]; 

            average = total/scores.length;


                try
                {
                    if(scores[index] < 0 || scores[index] > 100)
                    {
                        throw new InvalidTestScore("Index is " + index + " Score is " + scores[index]);
                    }
                }
                catch(InvalidTestScore e)
                {
                    System.out.println(e.getMessage());
                }

        }  
        return average;
    }

//这是我的InvalidTestScore类,位于单独的文件中

 public class InvalidTestScore extends Exception
    {
    public InvalidTestScore()
    {
        super("Error: Test scores must range from 0 to 100");
    }
    }

1 个答案:

答案 0 :(得分:1)

您的错误就在这里

throw new InvalidTestScore("Index is " + index + " Score is " + scores[index]);

在您的异常类中,您的Exception构造函数不带任何参数。但是,您正在发送字符串作为参数。因此,不要在上面的代码行中添加String,也不要在类中添加

 public class InvalidTestScore extends Exception
 {
     public InvalidTestScore(String msg)
     {
         super(msg);
     }
 }