[ruby-list:50122] Re: v2.1.0: ネストされたbegin節でbreak→LocalJumpError?
From:
masayoshi takahashi <maki@...>
Date:
2015-04-29 04:10:51 UTC
List:
ruby-list #50122
高橋征義です。
2015年4月29日 3:32 増田悦久 <uta2ne@gmail.com>:
> Rubyを v1.8.7 より v2.1.0 へアップデートしてみたところ、以下のスクリ
> プトの break でLocalJumpErrorが出てしまいます。
> 何か他のイテレータの脱出方法があるんでしょうか?
ブロックから脱出するならcatchとthrowでしょうか。
http://docs.ruby-lang.org/ja/2.2.0/method/Kernel/m/catch.html
http://docs.ruby-lang.org/ja/2.2.0/method/Kernel/m/throw.html
以下のようになります(%(...)を%w(...)に変えています)。
$ cat ~/tmp/test.rb
catch(:tag) do
%w(a b c).each { |c|
p c
begin
raise
rescue => e
begin
raise
rescue => e
throw :tag
end
end
}
end
p "done"
$ ruby ~/tmp/test.rb
"a"
"done"
--
高橋征義 (takahashimm@gmail.com)