精品国产亚洲一区二区三区,男女作爱在线观看免费网站,欧美的又大又长做禁片A片,97国产精品人妻无码久久久

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

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

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

    舉個簡單的例子:

    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);
      }
    }
    運行上邊的代碼,我們發(fā)現(xiàn)得到的返回值是finally區(qū)段中的20,而不是try區(qū)段中的10。

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