From: Masatoshi SEKI Date: 2001-01-21T06:09:31+09:00 Subject: [ruby-list:27267] Re: break from proc-closure 咳といいます。 > Proc中でのbreakはyield(=Proc#call)の即時終了を意味し、異常系 > ではないので例外は発生しません。ってのは助けにならないでしょ > うねえ。どうしましょう? 1.4系だと # だったと 思います。 > |---- > |proc = Proc.new do |n| > | p n > | break if n == :break > | retry if n == :retry > |end > | > |begin > | proc.call(:retry) > |rescue > | p $! #=> # > |end > | > |begin > | proc.call(:break) > |rescue > | p $! #=> ?? > |end > |---- > > このプログラムがどう動くべきなのかよくわからないのですが。 # を返して欲しいよう。(;_;) eval.cの中もそれらしく書いてあるし。(たぶん) > |a.rb:10: unexpected break" というのはなんでしょう? 例外ではない ?? > > トップレベルにbreakが突き抜けちゃったときのメッセージですね。 > これはバグっぽいです。 これがなおると#返すように なったりしませんか?