国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > Ruby > 正文

ruby 異常處理:rescue

2020-03-29 12:11:51
字體:
來源:轉載
供稿:網友
 一個運行著的程序常會遇到意外的問題.一個要讀取的文件不存在;當希望存入一些數據時磁盤滿了;用戶可能輸入不恰當的數據.

ruby> file = open("some_file")
ERR: (eval):1:in `open': No such file or directory - some_file  


一個健壯的程序會合理并漂亮的處理這些問題.面對那些異常是一件討人厭的工作.C程序員被要求做到檢查每一個可能導致錯誤發生的系統調用的返回值并立刻做出決定.

FILE *file = fopen("some_file", "r");
if (file == NULL) {  
fprintf( stderr, "File doesn't exist./n" );  
exit(1);
}
bytes_read = fread( buf, 1, bytes_desired, file );
if (bytes_read != bytes_desired ) {  
/* do more error handling here ... */
}
...  


這項無聊的工作會使程序員最終變得馬虎并忽略掉它,結果是程序無法應對異常.令一方面,這樣也會降低程序的可讀性.因為過多的錯誤處理使有意義的代碼也變得雜亂了.

在Ruby里,就像其它的現代語言,我們可以通過隔離的辦法處理代碼域里的異常,因此,這有著驚人的效果卻又不會為程序員或以后希望讀它的其它人造成過度的負擔.代碼域由begin開始直到遇到一個異常,這將導致轉向一個由rescue標記的錯誤處理代碼域.如果異常沒發生,rescue代碼就不會使用.下面的代碼返回文本文件的第一行,如果有異常則返回 nil.

def first_line( filename )
  begin
    file = open("some_file")
    info = file.gets
    file.close
    info  # Last thing evaluated is the return value
  rescue
    nil   # Can't read the file? then don't return a string
  end
end  


有時我們會希望圍繞問題展開創造性工作.這里,如果文件不存在,我們用標準輸入代替:

begin
  file = open("some_file")
rescue
  file = STDIN
end
begin
  # ... process the input ...
rescue
  # ... and deal with any other exceptions here.
end  


retry 用于 rescue 代碼表示又重新執行 begin 代碼.這讓我們可以壓縮前面的例子:

fname = "some_file"
begin
  file = open(fname)
  # ... process the input ...
rescue
  fname = "STDIN"
  retry
end  


但這仍有一點瑕疵.一個不存在的文件將導致不停止地 retry.你在使用 retry 做異常處理時應注意到這一點.

每個Ruby庫在遇到錯誤時都會提交一個異常,你可以在自己的代碼里明確地提交異常.用 raise 來提交異常.它帶一個參數,也就是描述異常的一個字符串.參數是可選的但不應被省略.之后它可以通過一個特殊的全局變量 $! 訪問.

ruby> raise "test error"
   test error
ruby> begin
    |   raise "test2"
    | rescue
    |   print "An error occurred: ",$!, "/n"
    | end
An error occurred: test2
   nil   

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
午夜性爽视频男人的天堂| 中文产幕区在线观看| 天天艹天天操| av福利在线播放| 国产三级视频在线| 国产亚洲精品一区二区在线观看| 国产精品四虎| 中文在线有码| 国产福利在线| www.色婷婷| 国产精品视频一区二区免费不卡| 国产视频三级在线观看播放| 91这里只有精品| 久久久久久久久久久久网站| 国产精品入口麻豆免费看| 在线视频三区| 国产乱视频在线观看播放| 中文国产字幕在线观看| 欧美性猛交xxxxbbbb| 国产精品免费91| 日本卡一卡2卡3卡4精品卡网站| 综合激情丁香| av日韩国产| 丁香婷婷激情| 久久精品视频免费看| 国产黄色免费电影| 久久99精品久久久久久野外| 影音先锋中文字幕在线| 最新中文字幕av专区| 羞羞视频在线免费看| 国产激情视频在线观看| 久久国产综合视频| 日本一卡二卡四卡精品| 99re6在线视频精品免费| 国产精选在线观看| 激情丁香婷婷| 欧美一级久久久久久久久大| 国产不卡在线| 国产美女被草| 青草青在线视频| 香蕉视频在线观看网站| 精品久久九九| 国产二级c片l毛片| 国产人成在线视频| 国产深夜视频在线观看| 麻豆网站在线| 狠狠操狠狠色| 国产69精品久久app免费版| 青青草视频免费在线观看| 日本综合一区二区三区| 日韩a视频在线观看| www.三级.com| 免费看黄视频网站| 精品电影在线| 日本在线免费中文字幕| 免费日本黄色| 日本在线观看| 久艹在线视频| 国产毛片毛片毛片| 国产福利电影在线| 俺来俺也去www色在线观看| www在线视频| 尤物视频网站在线观看| 国产女主播在线| 精精国产xxxx视频在线| 青青草在线免费观看| 国产精品一区二区婷婷| 国产一卡2卡3卡免费网站| 久久精品无码一区二区日韩av | 国产高清自拍视频在线观看| 影音av资源站| 国产美女免费观看| 在线视频观看你懂的| 日本黄在线观看| 国产呻吟对白刺激无套视频在线| 夜夜爽视频导航| 国产区高清在线| 国精一区二区三区| 影音先锋在线中文字幕| 任你操视频在线观看| 国产视频精选在线| 男人天堂亚洲| 青草av在线| 日本福利午夜视频在线| 99久久99久久免费精品小说| 国产午夜在线| 国产有码在线| 国产在线色视频| 在线播放www| 精品推荐国产麻豆剧传媒| 黄色av免费看| 玖玖在线视频| 白浆爆出在线观看| av在线播放网| 国产成人综合亚洲欧美在| 九九99九九精彩| av中文资源在线| 在线色视频观看| 99色在线观看| 亚洲wwwwww| 四虎成年永久免费网站| 亚洲一本大道| 日本福利在线| 九九在线观看免费视频| 欧美亚洲系列| 日本啊v在线| 国产在线传媒| 中文字幕日本在线| 国产精品第八页| 天天操天天曰| 国产毛片视频| 国产激情视频网址| 国产不卡在线| 亚洲欧美精选| 国产美女在线免费观看| 国产亚洲依依| 在线观看wwww| 激情六月婷婷| 国产91久久久久蜜臀青青天草二| 亚洲最新永久观看在线| 免费在线你懂的| 国产一级片在线| 精精国产xxxx视频在线动漫 | 国产成人无吗| 99福利在线| 久久亚洲天堂| 国产黄大片在线观看画质优化| 国产l精品国产亚洲区在线观看| av天天在线| 国产视频精选在线| 日本h视频在线观看| 最新中文字幕在线| av色在线观看| 国产网站麻豆精品视频| 亚洲免费国产| 国产丝袜护土调教在线视频| 99热99re6国产在线播放| 免费不卡中文字幕视频| ·天天天天操| 国产有码在线| 亚洲人av在线| 国产青青草在线| 美女av在线播放| av福利在线播放| 国产日本视频| 国产男女猛烈无遮挡免费视频| 在线视频中文字幕久| 最新中文字幕av专区| 毛片网站在线观看| 精品成人免费自拍视频| 国产剧情在线一区| 日本一二区视频| 91最新在线| 国产网站免费观看| 国产在线视频精品视频免费看| 99高清免费国产自产拍| 精品福利影院| h网站免费在线观看| 四虎影视成人永久免费观看视频| 国产98在线| 91在线超碰| 96久久久久久| 91欧洲在线视精品在亚洲| 国产一区二区三区不卡免费观看| аⅴ成人天堂中文在线| 日本高清中文字幕二区在线| 国产激情视频网址| 国产网站麻豆精品视频| 最近中文字幕mv免费高清电影 | 免费99热在线观看| free性亚洲| 日本电影全部在线观看网站视频| 在线成人综合色一区| 尤物视频在线观看视频| av在线资源网| 国产中文字幕网| 国产色视频网站| 国产网站观看9久| 国产成人综合亚洲欧美在| 精品麻豆一区二区三区| jizz性欧美| 五月天亚洲激情| 国产黄色免费网站| 四虎成年永久免费网站| 国产美女av| 中文天堂av| 久草网在线视频| 国产精品剧情一区二区在线观看 | 97视频网站| 天天操夜夜做| 国产午夜在线| 小说区乱图片区| 日本中文字幕在线播放| 在线亚洲精品自拍| 国产九色视频| 青草在线视频在线观看| 精品亚洲综合| 国产深夜福利| 成视频年人免费看黄网站| 97国产视频|