本帖最后由 杜佳瑞 于 2012-8-7 20:39 编辑
public class Finally1
{
public static void main(String[] args)
{
System.out.print("s...."+method()); //首先,调用method方法,4,最后打印s....88
}
public static int method()
{
int s = 23;
try
{
System.out.println("try.."+s); //1,打印try..23没问题,因为上面已经赋值
return s=88;//return之前,先看看有没有finally,有就先执行finally,但是这里的返回值已经定了88.
}
catch(Exception e)
{
System.out.println("exception::" + e);
}
finally
{
System.out.println("fina..."+s); //2,打印fina...88
s=4;
System.out.println("finally..."+s);//3,打印finally...4,finally执行完return s。
}
System.out.println("f ly..."+s);//这一句怎么没有执行?try里面已经return了,这句话肯定执行不到。
return s ; //这个return到底是在finally前执行的还是之后执行的?finally中给s符的值,这也执行不到
// 为什么没有被返回?
}
}
|