内側のルビーブロックで例外がスローされた場合に、外側のブロックと内側のブロックの両方から抜け出すことに興味があります。コードは次のようになります。
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がtrueの場合、内部ブロックだけでなく、外部ブロックと内部ブロックの両方を終了する必要があります。上記のコードは私にArgumentErrorを与えていますが、次のようになっています。
ArgumentError: uncaught throw "ExitBlock"
私は何が間違っているのですか?