Fantasy's World

          世界的小世界,我的大世界^_^

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            6 Posts :: 0 Stories :: 16 Comments :: 0 Trackbacks

          常用鏈接

          留言簿(4)

          我參與的團隊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          2005年12月29日 #

          首先看看我寫的一個小程序:

          public class TestTry extends Exception
          {
           static boolean f=false;
           static int sum=0;
           static int created=0;
           static int i=0;
           TestTry()
           {
            i=created++;
            if(created>=299) f=true;
            }
           public void finalize()
           {
            sum++;
            }
           public static void main(String[] args)
           {
            while(!TestTry.f)
            {
             try{
              throw new TestTry();
              }catch(Exception e){}
              finally{
               System.out.println("Creat "+TestTry.i+" TestTry, "+TestTry.sum+" has been finalized!");
               }
              }
            //System.out.println("Creat "+TestTry.created+" TestTry, "+TestTry.sum+" has been finalized!"); 
            }
           }

          這個是我在測試在try語句拋出異常后,在try語句中建立的對象是否會調(diào)用自身的終止函數(shù)時發(fā)現(xiàn)的,這里有個奇怪的現(xiàn)象在if(created>=299) f=true;這條語句中,如果把條件created>=299改為>=比299更大的數(shù),你會發(fā)現(xiàn)System.out.println("Creat "+TestTry.i+" TestTry, "+TestTry.sum+" has been finalized!");這條語句的輸出的結(jié)果并不是你預(yù)想的那樣(輸出判斷的數(shù)字+1的行數(shù)),而只是顯示最后的三百行。那么在這之前拋出的異常上哪里去了呢?難道說Java只處理最后拋出的三百的異常么?
          posted @ 2005-12-29 18:21 FinalFantasy 閱讀(369) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 石柱| 柘荣县| 泰安市| 蕉岭县| 玛纳斯县| 敖汉旗| 青岛市| 湘乡市| 咸宁市| 长海县| 芮城县| 屯昌县| 湘阴县| 青河县| 邳州市| 衡阳县| 彰化县| 韶山市| 罗定市| 周至县| 朔州市| 武鸣县| 平江县| 临朐县| 奈曼旗| 赣榆县| 建宁县| 黎川县| 兰溪市| 龙井市| 金溪县| 抚州市| 疏附县| 射洪县| 丁青县| 施甸县| 博兴县| 平顺县| 汕尾市| 育儿| 新野县|