Fantasy's World

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

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            6 Posts :: 0 Stories :: 16 Comments :: 0 Trackbacks
          首先看看我寫的一個小程序:

          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 on 2005-12-29 18:21 FinalFantasy 閱讀(367) 評論(0)  編輯  收藏 所屬分類: 讀書筆記
          主站蜘蛛池模板: 漳州市| 张掖市| 罗江县| 宣武区| 黑水县| 凤城市| 桂阳县| 东源县| 汉阴县| 时尚| 平邑县| 孝感市| 将乐县| 阿鲁科尔沁旗| 绵竹市| 微山县| 广水市| 论坛| 芜湖县| 尚义县| 十堰市| 天台县| 内江市| 深水埗区| 新兴县| 林芝县| 平湖市| 英山县| 镇康县| 玉门市| 青田县| 福清市| 廉江市| 红桥区| 托克逊县| 嵊泗县| 耿马| 台南市| 聂荣县| 凌云县| 牙克石市|