From: SASADA Koichi Date: 2011-06-10T22:36:19+09:00 Subject: [ruby-core:36926] Re: [Ruby 1.9 - Bug #4473] Calling return within begin still executes else Hi, I recognize this issue. Matz, what do you think about it? (2011/04/06 21:12), Mayank Kohaley wrote: > > Issue #4473 has been updated by Mayank Kohaley. > > > I can see the same issue happening on Windows also. > ---------------------------------------- > Bug #4473: Calling return within begin still executes else > http://redmine.ruby-lang.org/issues/4473 > > Author: Todd Huss > Status: Open > Priority: Normal > Assignee: > Category: > Target version: > ruby -v: ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.6.0] > > > I see this issue in 1.9.2-p0 through the current version 1.9.2-p136 on Mac OS X. The following code prints 'else executed'. Whereas in Ruby 1.8.x it would not execute the else statement if you called return from within a begin block. > > In summary, I would expect the following code to not print anything, but in Ruby 1.9.2 it actually prints 'else executed': > > # This code prints 'else executed' > def test_return_in_method > begin > return > rescue > puts 'rescue executed' > else > puts 'else executed' > end > end > test_return_in_method > > -- // SASADA Koichi at atdot dot net