• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >ruby > ruby 异常处理:ensure

ruby 异常处理:ensure

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了ruby ensure,澳洲ensure奶粉,ensure奶粉,ensure,ensure的用法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
 当一个方法结束工作时我们也许需要进行清理工作.也许一个打开的文件需要关闭,缓冲区的数据应清空等等.如果对于每一个方法这里永远只有一个退出点,我们可以心安理得地将我们的清理代码放在一个地方并知道它会被执行;但一个方法可能从多个地方返回,或者因为异常我们的清理代码被意外跳过.

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


上面,如果在我们写文件的时候发生异常,文件会保留打开.我们也不希望这样的冗余出现:

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代码域都将执行.

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前面.  
  </div>

您可能想查找下面的文章:

  • ruby 异常处理:ensure

相关文章

  • Ruby简明教程之数组和Hash介绍
  • 在操作系统上安装Ruby解释器的教程
  • Ruby中使用each和collect进行迭代的用法
  • Ruby程序中创建和解析XML文件的方法
  • Ruby Gems更换淘宝源方法
  • ruby写扫描当前网页所有url的脚本
  • Ruby实现邮件主动推送触发程序
  • ruby实现石头剪刀布游戏示例
  • 在Ruby on Rails中使用AJAX的教程
  • Ruby 之 class 中的 private、 protected、public

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 利用Ruby的SOAP4R编写SOAP服务器的教程
    • Ruby实现的合并排序算法
    • Ruby 中$开头的全局变量、内部变量、隐藏变量介绍
    • Ruby中的类Google Map/Reduce框架Skynet介绍
    • ruby 数组使用教程
    • Ruby中的Range对象学习笔记
    • Ruby中的异常处理代码编写示例
    • Ruby实现网页图片抓取
    • Ruby的安装与运行
    • Ruby实现的最优二叉查找树算法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有