以下のメソッドが true を返しました。なぜ?
def hoge
@objects.inject([]) do |result, obj|
begin
result << obj.do_something
rescue Exception => e
handle_exception e
ensure
result
end
end || []
end
解答
プログラミング言語 Ruby リファレンスマニュアル
begin式全体の評価値は、本体/rescue節/else節のうち最後に評価された文の値です。また各節において文が存在しなかったときの値はnilです。いずれにしてもensure節の値は無視されます。
ensure無視って...。