PerlerのRuby日記

Rubyとか

ensureはループ処理内でも動く

メモ。ensureはちゃんとnextとかbreakも捕捉してくれる。さすがensure。

%w[ normal raise next break ].each do |w|
  puts "==============================="
  puts "w: #{w}"
  begin
    raise if w == "raise"
    next  if w == "next"
    break if w == "break"
  rescue
    puts "raise"
  else
    puts "else"
  ensure
    puts "ensure"
  end
end
===============================
w: normal
else
ensure
===============================
w: raise
raise
ensure
===============================
w: next
ensure
===============================
w: break
ensure