最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ruby 異常處理:ensure

 更新時間:2007年11月24日 14:22:03   作者:  
 當一個方法結束工作時我們也許需要進行清理工作.也許一個打開的文件需要關閉,緩沖區(qū)的數(shù)據(jù)應清空等等.如果對于每一個方法這里永遠只有一個退出點,我們可以心安理得地將我們的清理代碼放在一個地方并知道它會被執(zhí)行;但一個方法可能從多個地方返回,或者因為異常我們的清理代碼被意外跳過.

begin
  file = open("/tmp/some_file", "w")
  # ... write to the file ...
  file.close
end  


上面,如果在我們寫文件的時候發(fā)生異常,文件會保留打開.我們也不希望這樣的冗余出現(xiàn):

begin
  file = open("/tmp/some_file", "w")
  # ... write to the file ...
  file.close
rescue
  file.close
  fail # raise an exception
end  


這是個笨辦法,當程序增大時,代碼將失去控制,因為我們必須處理每一個 return 和 break,.

為此,我們向"begin...rescue...end"體系中加入了一個關鍵字 ensure. 無論begin塊是否成功,ensure代碼域都將執(zhí)行.

begin
  file = open("/tmp/some_file", "w")
  # ... write to the file ...
rescue
  # ... handle the exceptions ...
ensure
  file.close   # ... and this always happens.
end  


可以只用ensure或只用rescue,但當它們在同一begin...end域中時, rescue 必須放在 ensure前面.  
 

相關文章

  • 關于Ruby on Rails路由配置的一些建議

    關于Ruby on Rails路由配置的一些建議

    這篇文章主要介紹了關于Ruby on Rails路由配置的一些建議,作者提出了相關代碼編寫時一些值得注意的地方,需要的朋友可以參考下
    2015-08-08
  • Ruby實現(xiàn)的矩陣連乘算法

    Ruby實現(xiàn)的矩陣連乘算法

    這篇文章主要介紹了Ruby實現(xiàn)的矩陣連乘算法,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
    2015-05-05
  • Ruby實現(xiàn)的各種排序算法

    Ruby實現(xiàn)的各種排序算法

    這篇文章主要介紹了Ruby實現(xiàn)的各種排序算法,本文給出了Bubble sort、Insertion sort、Selection sort、Shell sort等排序的實現(xiàn)方法,需要的朋友可以參考下
    2015-05-05
  • Ruby最簡單的消息服務器代碼

    Ruby最簡單的消息服務器代碼

    這篇文章主要介紹了Ruby最簡單的消息服務器,大家參考使用
    2013-11-11
  • Ruby編寫HTML腳本替換小程序的實例分享

    Ruby編寫HTML腳本替換小程序的實例分享

    這篇文章主要介紹了Ruby編寫HTML腳本替換小程序的實例分享,單純使用Ruby中的字符串替換方法而沒有涉及更復雜的正則表達式,需要的朋友可以參考下
    2016-05-05
  • Ruby中的block、proc、lambda區(qū)別總結

    Ruby中的block、proc、lambda區(qū)別總結

    這篇文章主要介紹了Ruby中的block、proc、lambda區(qū)別總結,本文講解了yield 和 block call 的區(qū)別、block 和 proc、lambda 的區(qū)別、proc 和 lambda 的區(qū)別,需要的朋友可以參考下
    2015-03-03
  • Ruby中操作文件的方法介紹

    Ruby中操作文件的方法介紹

    這篇文章主要介紹了Ruby中操作文件的方法介紹,是Ruby學習當中的基礎知識,需要的朋友可以參考下
    2015-05-05
  • Ruby中的異常處理代碼編寫示例

    Ruby中的異常處理代碼編寫示例

    這篇文章主要介紹了Ruby中的異常處理代碼編寫示例,作者對異常處理的方式給出了一些比較通用的建議,需要的朋友可以參考下
    2015-08-08
  • Ruby中嵌套對象轉換成json的方法

    Ruby中嵌套對象轉換成json的方法

    這篇文章主要介紹了Ruby中嵌套對象轉換成json的方法,同時介紹了普通對象to_json的方法,需要的朋友可以參考下
    2014-06-06
  • 使用Ruby來處理文本的教程

    使用Ruby來處理文本的教程

    這篇文章主要介紹了使用Ruby來處理文本的教程,本文來自于IBM官方網(wǎng)站技術文檔,需要的朋友可以參考下
    2015-04-04

最新評論

惠水县| 石首市| 葫芦岛市| 镶黄旗| 庐江县| 湖南省| 恩平市| 云龙县| 陇西县| 沙雅县| 新源县| 伊宁县| 贞丰县| 濮阳县| 明光市| 博客| 沙雅县| 田林县| 石台县| 和林格尔县| 西城区| 海口市| 吉林省| 景洪市| 沁阳市| 广宗县| 十堰市| 五峰| 梓潼县| 绥滨县| 梁平县| 芜湖县| 合阳县| 汨罗市| 巴马| 柏乡县| 镇坪县| 彭州市| 甘德县| 石嘴山市| 登封市|