かなり今更ながらなネタなのだが、Java7 で導入された AutoCloseable インタフェース。
try 〜 catch 句で使うことで、リソースの自動クローズをしてくれる。 これが入るまでは、try catch の後、例外処理のときにもリソースをクローズするために、finally で close() をするのが、コーディングのパターンだった。
AutoCloseable インタフェースによりclose()を実装すれば、例外が発生してもうまくclose()してくれるはず。
若干、気になって、close() が呼ばれるタイミングをチェックしてみると…、 意外なことに?、下記のように、finally() で呼ばれるのではなく、catch() の前でclose()が呼ばれている。
finally() でclose()されるイメージで使っていると混乱するかも、特にtryの中で、さらにtry catch resources をネスティングしている場合など。
まあ、あまり注意したくないところではあるけど、知識として覚えておこう。