From: nobu@... Date: 2014-11-11T17:58:06+00:00 Subject: [ruby-core:66211] [ruby-trunk - Feature #10042] Deprecate postfix rescue syntax for removal in 3.0 Issue #10042 has been updated by Nobuyoshi Nakada. Currently, ~~~ruby do_something_messy rescue(TypeError) ~~~ is valid code, and `TypeError` is a expression to be returned when an exception raised. With your proposal, it becomes an exception class to be rescued. That means the meaning of that parenthesized part changes by if it has succeeding expression. It would result just another confusion, IMHO. And I'm afraid that it might not be able to parse correctly. ---------------------------------------- Feature #10042: Deprecate postfix rescue syntax for removal in 3.0 https://bugs.ruby-lang.org/issues/10042#change-49906 * Author: Charles Nutter * Status: Open * Priority: Normal * Assignee: Yukihiro Matsumoto * Category: core * Target version: Next Major ---------------------------------------- The postfix rescue notation is convenient...but almost always is a really bad antipattern. An example of the notation: Integer(f) rescue f # returns f if it is not parseable as an Integer It silently ignores all StandardError raised by a piece of code...which often covers *many* more exceptions than the user *wants* to be ignoring. It also hides the cost of constructing and throwing away all those ignored exceptions. I believe Matz has even said in the past that he regrets adding the feature. In any case, I propose that "rescue nil" should be deprecated with a warning (either always on or only when verbose) and we should plan to remove it in 3.0. Who's with me?! -- https://bugs.ruby-lang.org/