`
fantaxy025025
  • 浏览: 1249599 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Ruby_语法_begin_rescue_else_end_使用介绍

 
阅读更多

 

Ruby 语法 begin rescue else end 使用 介绍

 

 

不经过else的例子

begin
  1/0
rescue => e
  puts "in rescue  error is:#{e}"
else
  puts "in else"
end
 

经过else的例子

begin
  1/1
rescue => e
  puts "in rescue  error is:#{e}"
else
  puts "in else"
end

也就是说,预计可能会报错,如果没有报错,就会走else的语句

 

使用的地方:报错和不报错 都会做某些类似事情的时候

上面的例子不是很贴切,没有体现else的用法,可以把esle去掉。

看一个ruby源码的例子:

      x = Thread.current
      y = Thread.start {
        begin
          sleep sec
        rescue => e
          x.raise e
        else
          x.raise exception, "execution expired" if x.alive?
        end
      }
      yield sec

这里,waiting的时候,如果没有报错,也即是说没有异常的程序,表示时间到了,也要报错。

这样用的地方,就很合乎常理了。

 

。。。结束了。。。 END  EOF 

 

(
(
(

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics