【发布时间】:2011-06-23 02:20:12
【问题描述】:
当我尝试使用 InvalidTestScore 异常创建 catch 语句时,java 不允许我这样做。但是,当我使用 IllegalArgumentException 时,java 确实允许我做到。
// George Beazer
public class TestScores2 {
public TestScores2(int[] arg) {
System.out.println(average(arg));
}
public int average(int[]arg)
{
int temp=0;
for (int i = 0; i < arg.length; i++) {
if(arg[i]<0 || arg[i]>100)
{
IllegalArgumentException e = new IllegalArgumentException();
throw e;
}
else
{
temp+=arg[i];
}
}
return temp/arg.length;
}
public static void main(String[] args) {
int []ar={4,78,33,89};
TestScores2 ts=new TestScores2(ar);
}
}
运行良好
但是如果我运行
public class TestScores2 {
public TestScores2(int[] arg) {
System.out.println(average(arg));
}
public int average(int[]arg)
{
int temp=0;
for (int i = 0; i < arg.length; i++) {
if(arg[i]<0 || arg[i]>100)
{
InvalidTestScoreException e = new InvalidTestScore();
throw e;
}
else
{
temp+=arg[i];
}
}
return temp/arg.length;
}
public static void main(String[] args) {
int []ar={4,78,33,89};
TestScores2 ts=new TestScores2(ar);
}
}
我找不到符号。制作您自己的自定义异常需要什么。
【问题讨论】:
-
为什么你认为java应该知道“InvalidTestScoreException”是什么?编程不是魔术。您必须创建一个“InvalidTestScoreException”类。
标签: java arrays compiler-construction error-handling