Actions
Feature #13212
closedSyntax proposal: don't require begin-end to rescue exceptions inside do-end blocks
    Feature #13212:
    Syntax 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
Actions