下面函数将返回?
public static int func (){
try{
return 1;
}catch (Exception e){
return 2;
}finally{
return 3;
}
}
答案是:3.
解析:
记住:无论如何finally语句都要执行就会这个题了
finally语句在try或catch中的return语句执行之后返回之前执行且finally里的修改语句不能影响try或catch中 return已经确定的返回值,若finally里也有return语句则覆盖try或catch中的return语句直接返回。
如果是这样代码:
public static int func (){
try{
exit(0);
}catch (Exception e){
return 2;
}finally{
return 3;
}
}
解析:
最终将什么都不返回。。因为已经退出来!
这个时候finally中的语句就会提示“finally block does not complete normally”