中文字幕天天躁日日躁狠狠躁,最近中文字幕大全免费版在线,最近2019免费中文字幕视频三,亚洲精品无码你懂的,亚洲国产精品成人精品小说

  • 相關(guān)軟件
    >Java異常處理--盡量不要從try區(qū)段中返回(return) 創(chuàng)建者:webmaster 更新時(shí)間:2005-05-31 11:51

    Java異常處理模型與其他語(yǔ)言相比,關(guān)鍵詞finally是最出色的新增特性了。finally構(gòu)件使得該區(qū)段中的代碼總是得以執(zhí)行,而無(wú)論是否發(fā)生異常,特別適用于維護(hù)對(duì)象的內(nèi)部狀態(tài)(用來(lái)保證異常發(fā)生恢復(fù)對(duì)象的有效狀態(tài),以確保程序能在處理完異常后自動(dòng)再次投入運(yùn)行)和清理non-memory資源(垃圾回收機(jī)制無(wú)法處理的資源,如數(shù)據(jù)庫(kù)連接、Socket等等)。

        但有一點(diǎn)值得注意,那就是盡量不要從try區(qū)段中返回(調(diào)用return),因?yàn)橹灰衒inally區(qū)段存在,它就一定會(huì)被執(zhí)行,那么如果你在finally區(qū)段中又調(diào)用了一次return語(yǔ)句,則try區(qū)段中的返回值將會(huì)被遮掩,使得方法調(diào)用者得到的是finally區(qū)段中的返回值--這常常又與程序編寫(xiě)的初衷相背。

    舉個(gè)簡(jiǎn)單的例子:

    class FinallyTest
    {
      public int mothodA()
      {
        try {
            return 10;
        }finally {
            return 20;
        }
      }
      public static void main(String[] args) {
        FinallyTest ft=new FinallyTest();
        int x= ft.mothodA();
        System.out.println("the value of x is: "+x);
      }
    }
    運(yùn)行上邊的代碼,我們發(fā)現(xiàn)得到的返回值是finally區(qū)段中的20,而不是try區(qū)段中的10。

        程序員傳統(tǒng)上總是以為當(dāng)他們執(zhí)行return語(yǔ)句的時(shí)候,會(huì)立刻離開(kāi)執(zhí)行中的函數(shù),返回到方法調(diào)用端。但是在Java語(yǔ)言中,一旦finally區(qū)段出現(xiàn),這種觀點(diǎn)便不再是金科玉律了。--《Practical Java》
        為了繞開(kāi)這個(gè)潛在的陷阱,我們需要盡量不在try區(qū)段中調(diào)用return break或continue語(yǔ)句,它們都有可能使程序進(jìn)入finall區(qū)段。如果無(wú)法避免,那么我們一定要確保finally區(qū)段的代碼不會(huì)影響函數(shù)的返回值。
    相關(guān)文章
    本頁(yè)查看次數(shù):