【发布时间】:2010-12-07 04:12:49
【问题描述】:
我有一点关于 ruby 如何解释代码中的 de ensure 子句的问题。 据我所知,确保子句必须始终由 begin 和 end 标记括起来。
例如,如果我编写这段代码,将引发 kENSURE 错误(C:/Documents and Settings/jlomonaco/Desktop/borrar.rb:3: 语法错误,意外 d kENSURE,期待 $end)
x=5
raise "ERROR!!!" if x==5
ensure
puts "some code has been executed"
但是,如果我将此代码包装在 begin 和 end 子句之间,则不会引发错误:
begin
x=5
raise "ERROR!!!" if x==5
ensure
puts "some code has been executed"
end
所以我的问题来了:
我发现在函数内定义不是必须在开始和结束之间包装确保标记;例如,我可以只写这段代码,不会引发任何错误:
def stackoverflow
x=5
raise "ERROR!!!" if x==5
ensure
puts "some code has been executed"
end
stackoverflow
如果我编写开始和结束标记,代码也可以正常工作。 那么,BEGIN 和 END 子句必须放在哪里?
谢谢!
【问题讨论】:
标签: ruby