コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

Rubyのblockはrescueで拾えるし、eachの場合は後続処理は実行される

あれ、そうなんだ!というの、原理としてはなんとなくわかるが情報のソースがないのでとりあえずできるよというところまで

環境

$ ruby -v
ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-darwin18]

コード例

def kicker(array)
  vals = array.each_with_object([]).with_index do |(value, result),index|
    result << value / value
  rescue
    p "Error!"
  end

  vals << 10000
  vals
end

p kicker([10,20,30])
p kicker([10,0,20,30])
$ ruby test.rb
[1, 1, 1, 10000]
"Error!"
[1, 1, 1, 10000]

参考リンク