finally里面不能有返回值吗,为什么,对于总是会执行的语句,放返回值,应该没问题啊,会报黄线,
@SuppressWarnings("finally")这句话是什么意思,有了这个就不报了
public static void main(String[] args) {
//创建x,y,并赋值为int类型
int x=5;
int y=0;
//调用fun()方法返回类型为int
int i=fun(x,y);
//输出0的话就说明finally不能改变返回值,先输出"执行finally"的话就说明finally是先执行的
System.out.println(i);
}
@SuppressWarnings("finally")
private static int fun(int x,int y) {
try{
//出现异常,需要catch捕获
x=x/y;
}
catch (Exception e){
//设定返回值为y
return y;
}
//finally是肯定必须执行的,所以会在catch前执行
finally{
//给x,y重新赋值
x=41;
y=2;
System.out.println("执行finally");
return 3;
}
//返回值为x,
// return x;
} |