2011年2月28日月曜日

Rubyの例外処理の落とし穴

(わたしの中では)使用頻度が低い Ruby を使ってスクリプトを書いていて、例外処理で初歩的な間違いを起こしましたので、メモしておきます。
begin
        ...
rescue  Errno::EPIPE => e
        ...
ensue
        temp.close(true)
end
とても初歩的なミスなのですが、ensure と書くべきところを ensue と間違って入力したために、必ず削除されるつもりの一時ファイルが残るというバグでした。このように間違えると、ensue は、rescue 節の一部と解釈されるので、rescue 節が走行する場合にしか、エラーにはなりません。

0 件のコメント:

コメントを投稿

人気ブログランキングへ にほんブログ村 IT技術ブログへ