We write about Ruby on Rails, React.js, React Native, remote work, open source, engineering and design.
1irb> array_from_user = [4, 2, 0, 1]
2 => [4, 2, 0, 1]
3
4irb> array_from_user.each do |number|
5irb> p 10 / number
6irb> rescue ZeroDivisionError => exception
7irb> p exception
8irb> next
9irb> end
10SyntaxError: (irb):4: syntax error, unexpected keyword_rescue,
11expecting keyword_end
12rescue ZeroDivisionError => exception
13 ^
Ruby 2.4 throws an error when we try to use rescue/else/ensure inside do/end blocks.
1irb> array_from_user = [4, 2, 0, 1]
2 => [4, 2, 0, 1]
3irb> array_from_user.each do |number|
4irb> p 10 / number
5irb> rescue ZeroDivisionError => exception
6irb> p exception
7irb> next
8irb> end
92
105
11#<ZeroDivisionError: divided by 0>
1210
13 => [4, 2, 0, 1]
Ruby 2.5 supports rescue/else/ensure inside do/end blocks.
Here is relevant commit and discussion.