public static int basicVariable(){
int x=1;
try{
x++;
//int y=1/0;
return x;
}catch(Exception e){
x+=2;
return ++x;
}finally{
x+=3;
return ++x;
}
}
如果是try{return;}catch{return;}finally{return}这种情况的,首先执行try块里return之前的代码,1.此时如果try里有异常发生跳转到catch,执行return之前和return之后的代码,最后执行finally里return之前和之后的代码,2.try块没异常,执行完return语句后,跳转到finally块执行return之前和return之后的代码。所以上述代码先执行x++异常跳转到catch,执行x+=2,接着执行return中的++x,最后执行finally中的x+=3,再执行return中的++x,所以结果是9。