Ruby_语法_begin_rescue_else_end_使用介绍
?
Ruby 语法 begin rescue else end 使用 介绍
?
?
不经过else的例子
begin 1/0rescue => e puts "in rescue error is:#{e}"else puts "in else"end?
经过else的例子
begin 1/1rescue => 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?
?
)
)
)
(((?
?