Grant Gardner created JRUBY-6390: ------------------------------------ Summary: Compatibility of 1.9 rescue behaviour with MRI Key: JRUBY-6390 URL: https://jira.codehaus.org/browse/JRUBY-6390 Project: JRuby Issue Type: Improvement Components: Core Classes/Modules, Ruby 1.9.2 Reporter: Grant Gardner Priority: Minor
MRI Ruby 1.9 seems to have inadvertently dropped the requirement that args to rescue must be a class or module See http://bugs.ruby-lang.org/issues/4438 The result however turns out to be quite useful http://ablogaboutcode.com/2011/09/21/dynamic-rescue-clause-in-ruby/ http://carboni.ca/blog/p/Ruby-Did-You-Know-That-2-Exception-Handling {code} a = Object.new() def a.===(val) val.message =~ /fancy/ end begin raise "a fancy runtime exception" rescue a puts "Rescued my fancy exception without being a class or module" end {code} In MRI 1.9.2+ the rescue clause is successful. in JRuby 1.6.5.1 with --1.9 we get {quote} TypeError: class or module required for rescue clause {quote} which is equivalent to the MRI 1.8.7 output {quote} class or module required for rescue clause (TypeError) {quote} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email