如果在内部红宝石块中引发异常,我有兴趣打破外部和内部块。代码可能如下所示:
catch "ExitBlock" do
foo.each_with_index do |el, idx|
bar = ... // do more stuff,
bar.each_with_index do |el1, idx1|
if some_bad_stuff
throw "ExitBlock"
end
end
end
end
如果 some_bad_stuff 为真,它应该退出外部块和内部块,而不仅仅是内部块。上面的代码给了我一个 ArgumentError 但是:
ArgumentError: uncaught throw "ExitBlock"
我究竟做错了什么?