猿问

请问为什么会报错

package CAR;


public class Test {

public  int test() {

int a=10;//除数

int b=100;//结果

try{

while(a>-1){

a--;

b=b+100/a;

}

}

catch(Exception e){

System.out.println("程序出现异常啦!!!");

   return 555;//我在catch语句中说明了了方法的会返回值

}//这里我删除了方法的返回值

/*finally{

System.out.println("!!!");

}*/

}

public static void main(String[] args) {

Test one=new Test();

int sum=one.test();

System.out.println("哦"+"\t"+sum);

}


}

请问为什么还是会报错,我在删除了方法的返回值但是我在catch中说明了方法的返回值,提示是方法应该有一个int的返回值类型。/



hy_wang
浏览 1585回答 3
3回答

小JAVA

除了用来处理异常的return,你在最后还得写一个return,万一程序没有异常,必须要有返回值。

玄机圣人

catch模块只有在发生了异常的时候才会执行,并不是百分百会执行到你的return 语句,所以程序在编译的时候,会判定你没有返回结果,所以该方法报错。当然如果你把return 语句放到finally语句,那是会百分百执行,方法不会有问题的
随时随地看视频慕课网APP

相关分类

Java
我要回答