国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Ruby > 正文

Ruby異常處理詳細解析

2020-02-24 15:40:31
字體:
來源:轉載
供稿:網友

  今天小編給大家分享一篇ruby.html" target="_blank">Ruby異常處理的詳細解析,感興趣的朋友跟小編一起來了解一下吧!

  異常和執行總是被聯系在一起。如果您打開一個不存在的文件,且沒有恰當地處理這種情況,那么您的程序則被認為是低質量的。

  如果異常發生,則程序停止。異常用于處理各種類型的錯誤,這些錯誤可能在程序執行期間發生,所以要采取適當的行動,而不至于讓程序完全停止。

  Ruby 提供了一個完美的處理異常的機制。我們可以在 begin/end 塊中附上可能拋出異常的代碼,并使用 rescue 子句告訴 Ruby 完美要處理的異常類型。

  語法

  begin

  # -

  rescue OneTypeOfException

  # -

  rescue AnotherTypeOfException

  # -

  else

  # 其他異常

  ensure

  # 總是被執行

  end

  從 begin 到 rescue 中的一切是受保護的。如果代碼塊執行期間發生了異常,控制會傳到 rescue 和 end 之間的塊。

  對于 begin 塊中的每個 rescue 子句,Ruby 把拋出的異常與每個參數進行輪流比較。如果 rescue 子句中命名的異常與當前拋出的異常類型相同,或者是該異常的父類,則匹配成功。

  如果異常不匹配所有指定的錯誤類型,我們可以在所有的 rescue 子句后使用一個 else 子句。

  實例

  #!/usr/bin/ruby

  begin

  file = open("/unexistant_file")

  if file

  puts "File opened successfully"

  end

  rescue

  file = STDIN

  end

  print file, "==", STDIN, "/n"

  這將產生以下結果。您可以看到,STDIN 取代了 file ,因為打開失敗。

  #0xb7d16f84>0xb7d16f84>

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 奎屯市| 延长县| 卢氏县| 石嘴山市| 永仁县| 静海县| 张家口市| 子长县| 石楼县| 怀远县| 岑巩县| 中卫市| 壤塘县| 会泽县| 宁津县| 上虞市| 海原县| 台前县| 保德县| 巴塘县| 宣武区| 枣阳市| 仙居县| 云梦县| 岑巩县| 姚安县| 大渡口区| 大连市| 泗洪县| 贵德县| 额济纳旗| 定兴县| 绥化市| 鸡西市| 上栗县| 临西县| 邯郸县| 舒城县| 酒泉市| 丘北县| 平阴县|