Charles Oliver Nutter wrote:
> Why can you not rescue return, break, etc when they are within 
> appropriate structures, but you can rescue them when they are not?
> 
> Example
> 
> begin
>   break
> rescue
>   puts 'here'
> end
> 
> # output: 'here'

The above is equivalent to:

begin
   raise LocalJumpError.new('unexpected break')
rescue
   puts 'here'
end

- Sam Ruby