最近Seleniumでブラウザを動かすコードを書いているのですが、コードをテストしている時にエラーが発生すると、ブラウザは起動しっぱなしなうえにログアウトなどもされずに残ってしまい、メモリが足らなくなってvagrant reloadを頻繁にするみたいな状態に。これじゃ効率悪すぎると、例外処理をキチンを書く事に。

begin
  # 実行する処理
rescue
  # 例外が発生したときの処理
else
  # 例外が発生しなかったときに実行される処理
ensure
  # 例外の発生有無に関わらず最後に必ず実行する処理
end

参考 => http://www.namaraii.com/rubytips/?%E4%BE%8B%E5%A4%96

このensureに必ずブラウザを終了する処理を書けば幸せになれました。