自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Ruby異常處理幫助緩存清理

開發(fā) 開發(fā)工具
Ruby異常處理中有一個關(guān)鍵字叫ensure可以幫助我們實現(xiàn)緩存的及時清理,避免許多麻煩的出現(xiàn)。下面就為大家介紹這個關(guān)鍵字的具體用法。

Ruby語言雖然能幫助我們提供簡便的編寫方法,靈活的實功能實現(xiàn)技巧,但是在實際使用中同樣會遇到一些問題。下面我們就一起來看看有關(guān)Ruby異常處理的一些介紹。#t#

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

  1. begin   
  2. file = open("/tmp/some_file", "w")   
  3. # ... write to the file ...   
  4. file.close   
  5. end   

 

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

  1. begin   
  2. file = open("/tmp/some_file", "w")   
  3. # ... write to the file ...   
  4. file.close   
  5. rescue   
  6. file.close   
  7. fail # raise an exception   
  8. end  

 

這是個笨辦法,當(dāng)程序增大時,代碼將失去控制,因為我們必須處理每一個 return 和 break,.
為此,我們向"begin...rescue...end"體系中加入了一個Ruby異常處理關(guān)鍵字 ensure. 無論begin塊是否成功,ensure代碼域都將執(zhí)行.

  1. begin   
  2. file = open("/tmp/some_file", "w")   
  3. # ... write to the file ...   
  4. rescue   
  5. # ... handle the exceptions ...   
  6. ensure   
  7. file.close # ... and this 
    always happens.   
  8. end  

 

可以只用Ruby異常處理ensure或只用rescue,但當(dāng)它們在同一begin...end域中時, rescue 必須放在 ensure前面.

責(zé)任編輯:曹凱 來源: jb51.net
相關(guān)推薦

2009-12-17 10:29:04

Ruby異常處理結(jié)構(gòu)

2009-12-16 13:53:51

Ruby多繼承

2013-08-22 17:10:09

.Net異常處理

2012-12-21 10:48:20

Java異常

2022-06-21 13:48:30

Redis緩存

2023-12-11 14:19:00

Java程序異常

2012-11-12 10:32:48

IBMdw

2018-07-11 19:41:47

MySQL定義異常異常處理

2009-07-17 17:34:03

SwingWorker異常處理

2022-12-28 08:17:19

異常處理code

2018-08-20 16:25:48

編程語言Java異常處理

2009-02-25 10:34:57

異常處理體系Python

2011-03-17 09:20:05

異常處理機制

2009-09-14 14:17:11

Linq異常處理

2023-12-27 07:53:08

全局異常處理處理應(yīng)用

2015-12-31 10:01:47

2012-05-11 16:33:36

ARP緩存服務(wù)器

2010-02-22 13:35:03

WCF異常處理

2019-11-20 10:39:35

iPhone緩存清理

2023-10-10 13:23:18

空指針異常Java
點贊
收藏

51CTO技術(shù)棧公眾號