Issue #10775 has been updated by Tomoyuki Chikanaga.

Backport changed from 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: REQUIRED to 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONE

Backported into `ruby_2_2` branch at r50563.

----------------------------------------
Bug #10775: "break" from a block with nested begin-rescue became impossible
https://bugs.ruby-lang.org/issues/10775#change-52504

* Author: MISUMI Rize
* Status: Closed
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.3.0dev (2015-01-23 trunk 49389) [x86_64-darwin14]
* Backport: 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONE
----------------------------------------
"break" from a block with nested begin-rescue became impossible.

Example(it is valid on Ruby 2.2.0, 2.1.5):

~~~ruby
2.times do
  begin
    raise
  rescue
    begin
      raise
    rescue
      break
    end
  end
end
~~~

Output: 

~~~
test.rb:8:in `rescue in rescue in block in <main>': break from proc-closure (LocalJumpError)
	from test.rb:5:in `rescue in block in <main>'
	from test.rb:2:in `block in <main>'
	from test.rb:1:in `each'
	from test.rb:1:in `<main>'
~~~

I wrote test and fix on GitHub. Please see the [pull request](https://github.com/ruby/ruby/pull/820).



-- 
https://bugs.ruby-lang.org/