BloveSaga

          在希臘帕爾納斯山南坡上,有一個(gè)馳名世界的戴爾波伊神托所,在它的入口處的巨石上赫然銹刻著這樣幾個(gè)大字: 認(rèn)識(shí)你自己!

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            34 隨筆 :: 12 文章 :: 122 評(píng)論 :: 0 Trackbacks
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(6)

          隨筆分類(lèi)(30)

          隨筆檔案(34)

          文章分類(lèi)(12)

          文章檔案(12)

          收藏夾(1)

          DataBase

          Developing Tools

          Frame&&Mode

          OpenSource

          Software Engineering&&Management

          Study Forum

          優(yōu)選Blog

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          ???? 下面這個(gè)可憐的小程序并不能干脆的做決定。它的decisive方法將返回true。但是它也返回false。那么,它到底打印的是什么呢?甚至,合法嗎?

          class Indecisive
          {
          ?public static void main(String[] args)
          ?{
          ??System.out.println(decisive());
          ?}
          ?static boolean decisive()
          ?{
          ??try
          ??{
          ???return true;
          ??}
          ??finally
          ??{
          ???return false;
          ??}
          ?}
          }
          ???你可能認(rèn)為這個(gè)程序不合法。畢竟,decisive方法不能同時(shí)返回true和false。如果你嘗試一下,就會(huì)發(fā)現(xiàn)它
          編譯時(shí)沒(méi)有任何錯(cuò)誤,并且它打印的是false。為什么呢?
          ??? 原因在于就是在:在一個(gè)try-finally語(yǔ)句中,finally語(yǔ)句塊總是在控制權(quán)離開(kāi)try語(yǔ)句塊時(shí)執(zhí)行。無(wú)論try
          語(yǔ)句塊是正常結(jié)束的,還是意外結(jié)束,情況都是如此。在一條語(yǔ)句或一個(gè)語(yǔ)句塊拋出一個(gè)異常,或者對(duì)某個(gè)封閉類(lèi)型語(yǔ)句執(zhí)行了一個(gè)break或continue,或是像這個(gè)程序一樣執(zhí)行了一個(gè)return時(shí),將發(fā)生意外結(jié)束。之所以稱(chēng)為意外結(jié)束,是因?yàn)樗鼈冏柚钩绦虬错樞驁?zhí)行下面的語(yǔ)句。
          ??? 當(dāng)try語(yǔ)句塊和finally語(yǔ)句塊都意外結(jié)束時(shí),在try語(yǔ)句塊中引發(fā)意外結(jié)束的原因?qū)⒈粊G棄,而整個(gè)try-finally
          語(yǔ)句意外結(jié)束的原因?qū)⑴cfinally語(yǔ)句塊意外結(jié)束的原因相同。在這個(gè)程序中,在try語(yǔ)句塊中的return語(yǔ)句所
          引發(fā)的意外結(jié)束將被丟棄,而try-finally語(yǔ)句意外結(jié)束是由finally語(yǔ)句塊中的return造成的。簡(jiǎn)單的講,程序
          嘗試著(try)返回(return)true,但是它最終(finally)返回(return)的是false。
          ??? 總之,每一個(gè)finally語(yǔ)句塊都應(yīng)該正常結(jié)束,除非拋出不受檢查的異常。千萬(wàn)不要用return,break,continue或throw來(lái)退出finally語(yǔ)句塊,并且千萬(wàn)不要允許讓受檢查的異常傳播到finally語(yǔ)句塊之外。

          posted on 2006-06-06 10:29 藍(lán)色Saga 閱讀(148) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 希哈爪哇

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 南郑县| 承德县| 丹巴县| 广南县| 灵山县| 盘山县| 武鸣县| 白朗县| 云安县| 青河县| 怀安县| 九台市| 梅河口市| 清涧县| 泾川县| 桃园市| 运城市| 青浦区| 东乌| 丘北县| 武宁县| 临城县| 綦江县| 玉环县| 和政县| 渭源县| 定陶县| 五寨县| 大竹县| 临邑县| 宣威市| 柳河县| 名山县| 黑河市| 十堰市| 习水县| 枞阳县| 武陟县| 泸州市| 安康市| 乌兰县|