我创建了一个名为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");
}
}
答案 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);
}
}