Actions
Feature #13212
closedSyntax proposal: don't require begin-end to rescue exceptions inside do-end blocks
Status:
Closed
Assignee:
-
Target version:
-
Description
Blocks are ubiquitous in Ruby world. There's as many blocks in every Ruby code as methods - if not even more. It would be very nice to treat blocks as first class citizens like methods and reduce the undesirable begin-end boilerplate inside blocks for exception handling. Here's the syntax proposal:
arr.each do |e|
do_something(e)
rescue MyException => e
# handle exception
end
Just like in methods:
def method
do_something
rescue MyException => ex
# handle exception
end
Currently begin-end
block is required for handling exceptions inside blocks:
arr.each do |e|
begin
do_something(e)
rescue MyException => ex
# handle exception
end
end
Whether the same syntax would apply for {} block/lambda syntax is debatable. {} are typically one-liners and I barely ever saw a begin-rescue-end inside them.
Thank you
-Damian Nowak
Updated by hsbt (Hiroshi SHIBATA) over 7 years ago
- Has duplicate Feature #12906: do/end blocks work with ensure/rescue/else added
Updated by hsbt (Hiroshi SHIBATA) over 7 years ago
- Status changed from Open to Closed
It's accepted by https://bugs.ruby-lang.org/issues/12906
You can use this syntax after Ruby 2.5.
Actions
Like0
Like0Like0