亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

用finally做什么

2019-11-18 13:19:57
字體:
來源:轉載
供稿:網友

  在沒有“垃圾收集”以及“自動調用破壞器”機制的一種語言中(注釋⑤),finally顯得非凡重要,因為程序員可用它擔保內存的正確釋放——無論在try塊內部發生了什么狀況。但java提供了垃圾收集機制,所以內存的釋放幾乎絕對不會成為問題。另外,它也沒有構建器可供調用。既然如此,Java里何時才會用到finally呢?
  
 ?、荩骸捌茐钠鳌保―estrUCtor)是“構建器”(Constructor)的反義詞。它代表一個非凡的函數,一旦某個對象失去用處,通常就會調用它。我們肯定知道在哪里以及何時調用破壞器。C++提供了自動的破壞器調用機制,但Delphi的Object Pascal版本1及2卻不具備這一能力(在這種語言中,破壞器的含義與用法都發生了變化)。
  
  除將內存設回原始狀態以外,若要設置另一些東西,finally就是必需的。例如,我們有時需要打開一個文件或者建立一個網絡連接,或者在屏幕上畫一些東西,甚至設置外部世界的一個開關,等等。如下例所示:
  
  //: OnOffSwitch.java
  // Why use finally?
  
  class Switch {
   boolean state = false;
   boolean read() { return state; }
   void on() { state = true; }
   void off() { state = false; }
  }
  
  public class OnOffSwitch {
   static Switch sw = new Switch();
   public static void main(String[] args) {
    try {
     sw.on();
     // Code that can throw exceptions...
     sw.off();
    } catch(NullPointerException e) {
     System.out.     sw.off();
    } catch(IllegalArgumentException e) {
     System.out.println("IOException");
     sw.off();
    }
   }
  } ///:~
  
  這里的目標是保證main()完成時開關處于關閉狀態,所以將sw.off()置于try塊以及每個違例控制器的末尾。但產生的一個違例有可能不是在這里捕捉的,這便會錯過sw.off()。然而,利用finally,我們可以將來自try塊的關閉代碼只置于一個地方:
  
  //: WithFinally.java
  // Finally Guarantees cleanup
  
  class Switch2 {
   boolean state = false;
   boolean read() { return state; }
   void on() { state = true; }
   void off() { state = false; }
  }
  
  public class WithFinally {
   static Switch2 sw = new Switch2();
   public static void main(String[] args) {
    try {
     sw.on();
     // Code that can throw exceptions...
    } catch(NullPointerException e) {
     System.out.println("NullPointerException");
    } catch(IllegalArgumentException e) {
     System.out.println("IOException");
    } finally {
     sw.off();
    }
   }
  } ///:~
  
  在這兒,sw.off()已移至一個地方。無論發生什么事情,都肯定會運行它。
  即使違例不在當前的catch從句集里捕捉,finally都會在違例控制機制轉到更高級別搜索一個控制器之前得以執行。如下所示:
  
  //: AlwaysFinally.java
  // Finally is always executed
  
  class Ex extends Exception {}
  
  public class AlwaysFinally {
   public static void main(String[] args) {
    System.out.println(
     "Entering first try block");
    try {
     System.out.println(
      "Entering second try block");
     try {
      throw new Ex();
     } finally {
      System.out.println(
       "finally in 2nd try block");
     }
    } catch(Ex e) {
     System.out.println(
      "Caught Ex in first try block");
    } finally {
     System.out.println(
      "finally in 1st try block");
    }
   }
  } ///:~
  
  該程序的輸出展示了具體發生的事情:
  
  Entering first try block
  Entering second try block
  finally in 2nd try block
  Caught Ex in first try block
  finally in 1st try block
  
  若調用了break和continue語句,finally語句也會得以執行。請注重,與作上標簽的break和continue一道,finally排除了Java對goto跳轉語句的需求。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品手机播放| 久久亚洲影音av资源网| 国产亚洲欧美日韩一区二区| 国产精品久久久久av免费| 在线观看日韩www视频免费| 亚洲一区二区黄| 日韩在线观看视频免费| 久久久999精品| 亚洲福利在线看| 久久影院中文字幕| 久久精品亚洲一区| 97婷婷涩涩精品一区| 国内精品免费午夜毛片| 一区二区三区在线播放欧美| 国产一区二区三区四区福利| 国产日韩亚洲欧美| 欧美裸体xxxx极品少妇软件| 亚洲电影成人av99爱色| 亚洲欧美国产另类| 久久久久久com| 最好看的2019年中文视频| 91超碰caoporn97人人| 日韩精品久久久久久久玫瑰园| 日本成人精品在线| 三级精品视频久久久久| 精品美女久久久久久免费| 国产精品午夜视频| 欧美日韩国产黄| 精品中文字幕久久久久久| 久久成人在线视频| 国产成人精品免高潮费视频| 日韩精品免费看| 欧美电影免费观看| 日韩成人网免费视频| 欧美激情精品久久久久久久变态| 欧美午夜女人视频在线| 国产成人一区三区| 国产精品日本精品| 亚洲石原莉奈一区二区在线观看| 自拍亚洲一区欧美另类| 亚洲国产精彩中文乱码av在线播放| 国产91精品最新在线播放| 亚洲无限乱码一二三四麻| 国产精品一区二区三区久久久| 国产精品视频自拍| 欧美大尺度激情区在线播放| 日韩精品在线免费| 日韩av黄色在线观看| 亚洲a级在线播放观看| 欧美人在线视频| 欧美大胆a视频| 欧美成人全部免费| 国产精品爽黄69天堂a| 亚洲国产精品专区久久| 欧美日韩加勒比精品一区| 欧美午夜女人视频在线| 永久555www成人免费| 亚洲jizzjizz日本少妇| 久久亚洲成人精品| 北条麻妃久久精品| 国产一区二区三区在线看| 91免费综合在线| 国产精品成人一区二区三区吃奶| 亚洲成人久久一区| 日本久久中文字幕| 91高潮精品免费porn| 亚洲女人天堂视频| 亚洲伊人成综合成人网| 久久久国产精品一区| 亚洲欧美日韩一区二区三区在线| 亚洲精品一区二区网址| 超碰91人人草人人干| 精品福利一区二区| 欧美第一黄色网| 亚洲第一福利网| 日韩中文字幕在线播放| 国产成人鲁鲁免费视频a| 三级精品视频久久久久| 日韩av最新在线观看| 亚洲综合中文字幕在线观看| 日本不卡视频在线播放| 亚洲最大福利网站| 欧美一级视频在线观看| 日韩免费不卡av| 色吧影院999| 成人黄色av播放免费| 不卡av在线网站| 亚洲tv在线观看| 2019亚洲日韩新视频| 国产精品美女久久久久av超清| 欧美日韩中国免费专区在线看| 国产精品www色诱视频| 国产精品久久久久久亚洲调教| 97av视频在线| 欧美日韩视频在线| 久久精品免费播放| 57pao国产精品一区| 亚洲的天堂在线中文字幕| 日韩精品免费在线视频观看| 日韩av一区在线观看| 不卡av日日日| 亚洲字幕一区二区| 97香蕉久久夜色精品国产| 国产精品福利在线| 丁香五六月婷婷久久激情| 91av中文字幕| 久久久久国产精品一区| 色偷偷91综合久久噜噜| 永久免费毛片在线播放不卡| 日韩一区二区av| 91久久精品久久国产性色也91| 92福利视频午夜1000合集在线观看| 少妇高潮久久77777| 欧美日韩一二三四五区| 中文字幕久久亚洲| 亚洲精品中文字幕女同| 国产精品免费福利| 精品激情国产视频| 精品欧美aⅴ在线网站| 欧美噜噜久久久xxx| 欧美日韩国产麻豆| 日韩电影免费观看在线观看| 欧美成人四级hd版| 国产伦精品免费视频| 国产97人人超碰caoprom| 亚洲色图av在线| 91嫩草在线视频| 91精品久久久久久久久久久久久久| 亚洲欧美中文在线视频| 国产成人+综合亚洲+天堂| 成人在线中文字幕| www.日韩欧美| 91黑丝高跟在线| 国产91久久婷婷一区二区| 欧美色欧美亚洲高清在线视频| 91色p视频在线| 91色精品视频在线| 亚洲春色另类小说| 黑人极品videos精品欧美裸| 欧美在线视频一区二区| 国产精品一区专区欧美日韩| 日本三级久久久| 国内精品伊人久久| 亚洲国产精品人人爽夜夜爽| 久久精品电影网站| 国内精品久久久久久中文字幕| 国产最新精品视频| 欧美精品videos性欧美| 国产69精品久久久久9999| 欧美美女15p| 久久成人免费视频| 91色p视频在线| 国产精品丝袜视频| 国产午夜精品久久久| 欧美日韩亚洲一区二区| 亚洲综合成人婷婷小说| 538国产精品一区二区在线| 欧美成aaa人片免费看| 亚洲韩国欧洲国产日产av| 久久亚洲精品中文字幕冲田杏梨| 国产精品夜色7777狼人| 国产精品福利在线观看网址| 中文字幕亚洲国产| 久久人人爽人人爽人人片av高清|