• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Ruby之旅(16)异常处理rescue与ensure

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
begin #开始
 
 
raise.. #抛出异常
 
rescue [ExceptionType = StandardException] 
#捕获指定类型的异常 缺省值是StandardException
 $! #表示异常信息
 $@ #表示异常出现的代码位置
else #其余异常
 ..
ensure 
#不管有没有异常,进入该代码块
 
end 
#结束


这是异常处理结构,可以结合$!错误原因,和$@错误位置做一个错误捕获并提示的小程序了,比如

begin
    puts 
    puts 
"file: #{name = ARGV.shift}"
    file 
= open(name)
    i 
= 0
    file.read.each_line{
|line| puts "#{i+=1}.#{line}" }
    puts
rescue
    puts 
"error:#{$!} at:#{$@}"
ensure
    file.close
end
上面的小程序读入一个指定的文件并加入行号进行输出,当产生错误时会输出错误信息以及提示,你可以故意输入一个不存在的文件名。

其实begin相当于c#的try
rescue相当于c#的catch
ensure相当于c#的finaly
raise相当于c#的throw


异常类的结构

 
异常类
  • Object


  • 鲜花

    握手

    雷人

    路过

    鸡蛋
    该文章已有0人参与评论

    请发表评论

    全部评论

    专题导读
    热门推荐
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap