憨厚生

----Java's Slave----
***Java's Host***

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  165 随笔 :: 17 文章 :: 90 评论 :: 0 Trackbacks

#

   在http://www.cnitblog.com/yemoo/archive/2008/06/18/45850.html文中巧用try finally;但是让我对finally执行过程有点疑惑,发现java的try catch功能和js是一样的。下面列出例子:
   public int test1(){
   int i=4;
   try{ return i;}finally{ i=0;System.out.println("---test----");}
}
   执行结果:输出---test----,test1方法返回4;我的疑惑是为什么不返回0
   在QQ群里讨论的时候,有人说finally中的语句在try中的return后执行。但是如下代码执行否决了上面的结论。
public int test2(){
   int i=4;
   try{ return i;}finally{ i=0;System.out.println("---test----");return i;}
}
   注意:在finally中多了个return i;
   执行结果:输出---test----,test2方法返回0;
   这个例说明了finally中的语句是在try的return执行前执行的。那么test1方法的finally中i=0了,但是为什么test1方法还返回4呢?这是我的疑惑,那位知道解释一下。

posted @ 2009-04-01 11:54 二胡 阅读(2178) | 评论 (10)编辑 收藏

仅列出标题
共165页: First 上一页 78 79 80 81 82 83 84 85 86 下一页 Last