class Test
def foo
throw(:label, foo)
"should never get here"
end
def bar
"bar"
end
end
test = Test.new
现在我尝试了以下方法:
puts("bar -> " + catch(:label) {test.bar})
并得到:
bar -> bar
=> nil
现在当我尝试:
puts("foo -> " + catch(:label) {test.foo})
我希望我会得到nil
但实际上得到了以下内容:
SystemStackError: stack level too deep
from /usr/lib/ruby/1.9.1/irb/workspace.rb:80
Maybe IRB bug!
我无法解释自己为什么会这样。任何人都可以帮助我吗?