伝授!Javaの奥儀 その63 ~自動で後始末をしてくれる「AutoCloseable」の術~
奥儀 その63
自動で後始末をしてくれる「AutoCloseable」の術
⚔️ 今回の戦(プログラム)は、
自動で後始末をしてくれる「AutoCloseable」の術、すなわち
「try-with-resources構文」 の流儀に関わるものでござる!
🏯 登場人物の紹介
その一:Sample implements AutoCloseable

AutoCloseable を実装しておる!
これは try-with-resources において、自動で close() を呼んでもらえる契約じゃ!
close() の中で "Close" と表示しておるゆえ、リソースを閉じる際にこの文字が出る。
その二:Main クラス

🔥 実行の流れ(侍的順序)
try(Sample s = new Sample()) にて、Sample のインスタンス生成!
s は try の中だけで使える特別な戦士。
ここからが try-with-resources の始まりじゃ!
throw new Exception(); により、即座に例外発生!
例外が投げられた瞬間、try ブロックを抜ける。
しかしその前に…
s.close() が自動で呼ばれる!
なぜならば、Sample は AutoCloseable を実装しておるからじゃ!
その結果、"Close" が出力される。
その後、例外は catch(Exception e) に捕まる!
よって "OK" が出力される。
最後に finally が必ず実行される!
"End" が出力される。
📜 実行結果
Close
OK
End🎯 侍的まとめ
「例外が起ころうとも、礼儀は忘れぬ!まずは close() にて道具を納め、続けて捕縛、最後に終幕を飾る――これぞ try-with-resources の流儀!」
AutoCloseable を実装すれば、try ブロックを出るときに自動で close() が呼ばれる。
throw があっても、先に close() → catch → finally の順で進む。
「自動で後始末」こそ、戦場において道具を丁寧に扱う侍の心得である!
拙者、本日は茨城県は土浦城にたたずむ
下に記したる書物を拙者、参考にさせていただいておる次第!
さらば、次回も何卒よろしくお願い仕る!
