error中級
Ruby の `begin/rescue/ensure` において `ensure` ブロックが実行されるのはいつですか?
- 例外が発生したときのみ
- 例外が発生しなかったときのみ
- 例外の有無にかかわらず常に
- rescue で捕捉できなかったときのみ
解説
`ensure` は例外の有無にかかわらず必ず実行されます。ファイルのクローズや DB 接続の解放など、後処理を保証したいときに使います。`return` や `next` で途中終了した場合でも `ensure` は実行されます。