From: Jirou Iizuka Date: 2009-02-12T01:55:10+09:00 Subject: [ruby-dev:37967] [Bug #1143] ruby 1.9.1p0でensure節が実行されない Bug #1143: ruby 1.9.1p0でensure節が実行されない http://redmine.ruby-lang.org/issues/show/1143 起票者: Jirou Iizuka ステータス: Open, 優先度: Normal Target version: 1.9.1 ruby -v: ruby 1.9.1p0 (2009-01-20 revision 21700) [i386-mingw32] ruby 1.9.1p0で以下を実行した場合、ensure節が実行されません。 def test return while true ensure puts("ENSURE") end test $ ruby -v test.rb ruby 1.9.1p0 (2009-01-20 revision 21700) [i386-mingw32] $ 別スレッド内で実行しても、またmswin32およびFreeBSD 7.1R/i386版でも実行したところ、やはり同じ結果でした。 ruby 1.8.7p72 (mswin32, FreeBSD 7.1R/i386) 版は上記の通りでもensure節が実行されます。 returnではなくbreakにするとensure節は実行されます。 ifやforでは問題が起こらず、while/untilからのreturnで実行が飛ばされるようです。 ---------------------------------------- http://redmine.ruby-lang.org