http://blog.csdn.net/samsunge808/article/details/3951159
总结
一:try catch finally 都没有return 则执行finally后的return
二:try catch有return,无异常执行完finally后执行try中return,有异常则执行完finally后执行catch中return
三:try catch finally均有return,仅执行finally中return ,即只要finally块中有return则try或catch中的return不再执行
四:二三类型的情况均有return执行,所以在二三中情况基础之上,如果finally之后还有return,必然不会执行,此时编译器就会报错
五:判断finally外能否有return,只需要判断在try catch finally 中是否必定会执行return,如果是则finally不能有return;
下面这种情况是try{return} catch{}finally{}return 如果程序正常则finally中的return 不执行,否则程序异常则执行finally后的异常
public static void main(String[] args){
System.out.print(tt());
}
public static int tt(){
int b = 23;
try{
System.out.println("yes");
b += 88;
return b; //---1
}catch(Exception e){
System.out.println("error :" + e);
}finally{
if(b>25){
System.out.println("b>25 :"+b);
}
System.out.println("finally");
}
return 101; //---4
}