From: "nobu (Nobuyoshi Nakada)" Date: 2014-01-01T15:28:04+09:00 Subject: [ruby-core:59448] [ruby-trunk - Bug #9335][Rejected] dynamic rescue regression in Ruby 2.1 Issue #9335 has been updated by nobu (Nobuyoshi Nakada). Status changed from Open to Rejected It had been allowed on 1.9.3 accidentally. In other words, it's a fixed bug. ---------------------------------------- Bug #9335: dynamic rescue regression in Ruby 2.1 https://bugs.ruby-lang.org/issues/9335#change-44005 Author: fdr (Daniel Farina) Status: Rejected Priority: Normal Assignee: Category: Target version: ruby -v: ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN The following type of rescue block appears broken: begin raise 'hello' rescue ->(e) { true } end In Ruby 1.9.3p484, this exits with a normal exit code and no output. On Ruby 2.1.0, it instead yields: /tmp/badin21.rb:4:in `rescue in
': class or module required for rescue clause (TypeError) from /tmp/badin21.rb:2:in `
' Some research suggests this is a regression to the pre-1.9.2 behavior, and there doesn't seem to be any direct mention about this change in the changelog of 2.1 nor 2.0. -- http://bugs.ruby-lang.org/