見出し画像

伝授!Javaの奥儀 その63 ~自動で後始末をしてくれる「AutoCloseable」の術~

奥儀 その63

自動で後始末をしてくれる「AutoCloseable」の術

⚔️ 今回の戦(プログラム)は、
自動で後始末をしてくれる「AutoCloseable」の術、すなわち
「try-with-resources構文」 の流儀に関わるものでござる!

🏯 登場人物の紹介

その一:Sample implements AutoCloseable

 
  • AutoCloseable を実装しておる!

  • これは try-with-resources において、自動で close() を呼んでもらえる契約じゃ!

  • close() の中で "Close" と表示しておるゆえ、リソースを閉じる際にこの文字が出る。


その二:Main クラス

 

🔥 実行の流れ(侍的順序)

  1. try(Sample s = new Sample()) にて、Sample のインスタンス生成!

    • s は try の中だけで使える特別な戦士。

    • ここからが try-with-resources の始まりじゃ!

  2. throw new Exception(); により、即座に例外発生!

    • 例外が投げられた瞬間、try ブロックを抜ける。

    • しかしその前に…

  3. s.close() が自動で呼ばれる!

    • なぜならば、Sample は AutoCloseable を実装しておるからじゃ!

    • その結果、"Close" が出力される。

  4. その後、例外は catch(Exception e) に捕まる!

    • よって "OK" が出力される。

  5. 最後に finally が必ず実行される!

    • "End" が出力される。


📜 実行結果

Close
OK
End

🎯 侍的まとめ

「例外が起ころうとも、礼儀は忘れぬ!まずは close() にて道具を納め、続けて捕縛、最後に終幕を飾る――これぞ try-with-resources の流儀!」

 
  • AutoCloseable を実装すれば、try ブロックを出るときに自動で close() が呼ばれる。

  • throw があっても、先に close() → catch → finally の順で進む。

  • 「自動で後始末」こそ、戦場において道具を丁寧に扱う侍の心得である!

拙者、本日は茨城県は土浦城にたたずむ


下に記したる書物を拙者、参考にさせていただいておる次第!

さらば、次回も何卒よろしくお願い仕る!

いいなと思ったら応援しよう!