在拖了很久之后,终于在这个学期放下其他,开始学习javal了。。。哎,今天遇到了一个小问题,可是花费了我半个小时啊!!!是因为
写了 public Stirng test{}; 编译时,老师说在test时加个;分号,原来是少了();即public String test(){};
class InvalidIndexException extends Exception{
private int i;
InvalidIndexException( int a ){
i = a;
}
public String toString(){
return i + "is out of boundary--0 < i < 8";
}
}
public class test{
public static void main(String[] args){
try{
for( int i = 1 ; i < 9 ; i++ )System.out.println( i + "---" + giveName(i) );
}
catch( InvalidIndexException e ){
System.out.println( e.toString() );
}
finally{
System.out.println("These days makes up a week");
}
}
public static String giveName( int d ){
String name;
switch( d ){
case 1: name = "Monday";
break;
case 2: name = "Tuesday";
break;
case 3: name = "Wednesday";
break;
case 4: name = "Thursday";
break;
case 5: name = "Friday";
break;
case 6: name = "Saturday";
break;
case 7: name = "Sunday";
break;
default:throw new InvalidIndexException(d);
}
return name;
}
}
本程序没太看懂结果啊
D:/java_pro_jdk>javac *.java
test.java:20: 在相应的 try 语句主体中不能抛出异常 InvalidIndexException
catch( InvalidIndexException e ){
^
test.java:46: 未报告的异常 InvalidIndexException;必须对其进行捕捉或声明以便抛出
default:throw new InvalidIndexException(d);
^
2 错误
我个人觉得没问题啊
继续思考中...
只要在加上 public static String giveName( int d )后面throws InvalidIndexException就可以了。。呵呵