RSS
当前位置 : 电脑维修 > 电脑维修 > 增求return的用法

增求return的用法

来源:未知 作者:老黑 时间:09-09-07 打印
public class Test3{
public static int output=0;
public static void foo(int i){
try{
if(i==1) throw new Exception();
}
catch(Exception e){
output =2;
return;            ////#
}
finally{output =3;
}
output =4;          ////*
}
public static void main(String args[]){
foo(1);System.out.println(output);
}
}




当我把#行去掉时,×行要执行,why??我不晓得这个return的用法,谁帮帮我 tr catch finally三个运行关系
有finally时是必须运行的,就算你在catch中有return  ,finally中的代码也要执行,
如果在执行finally中碰到return了就直接回到catch继续执行,比如你的代码,执行到#是return不会马上执行它,而是执行finally,然后继续return(#)。如果#去掉那就不返回接着执行太try catch finally 整体之后的语句也就是*啦   i是先自加然后再用,也就是先自加3次,那么i就是4了 结果就是4 4 4了,不过你给的结果10,4,我也不知道为什么,我在vc上运行的结果和楼上的一样,一般情况下不建议使用这样的表达式,因为这样表达是在不同的编译器上结果可能不同的,  
最新评论共有位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名评论