日期:2014-05-20  浏览次数:20601 次

谢谢大家,帮忙看个finally、return的小例子
下面那个例子的输出结果是:
func1
func2
2

就是不知道这个2是怎么出来的??? 谢谢大家,帮忙看看吧。

//////////////////////////////////////////////////////////////////////////

package com.yujian.exception;

public class ReturnDemo {

public static void main(String[] args) {
System.out.println(new ReturnDemo().test());
}

  int test()

  {

  try

  {
  return func1();
  }
   
  //finally是异常处理语句结构的一部分,表示总是执行。
  finally

  {
  return func2();
  }

  }

   

  int func1()

  {

  System.out.println("func1");

  return 1;

  }

  int func2()

  {

  System.out.println("func2");

  return 2;

  }  

}

//////////////////////////////////////////////////////////////////////////


------解决方案--------------------
其实就是在fun1返回之前会执行finally里面的代码,也就是fun2,但是fun2就return 2;所以就不会再去fun1里面去返回了。
------解决方案--------------------
探讨
其实就是在fun1返回之前会执行finally里面的代码,也就是fun2,但是fun2就return 2;所以就不会再去fun1里面去返回了。

------解决方案--------------------
ok +1