「不必要になったリソースを使い終わったら直ちに解放する」ことを「確実に保証したい」場合に使います。
よくあるのはファイルアクセス用のオブジェクトなどです。入出力処理が終わったにもかかわらずcloseメソッドを呼び忘れるとOSの資源が「使用中」のままになってしまい、最悪「資源不足のためにプログラムの実行継続が不可能」になったりします。
「確実に保証したい」とは「正常終了しようが例外が発生してメソッドの実行が中断されようが、try-with-resource文の外側に制御が移動する際に自動的に後始末(closeメソッドの自動呼出し)をしてくれる」ことを意味します。
プログラマーがcloseの呼び出しをしそこなう(呼び忘れとか)を避けるためにtry-with-resourceの存在意義があります。
「try-with-resource」というキーワードをご存知なら検索して見つかるような解説ページに上記のようなことが書いてあると思います。
例えば・・・
https://docs.oracle.com/javase/jp/7/technotes/guides/language/try-with-resources.html
ひょっとしたら質問者さんの質問意図を掴みそこなっているかも知れません。何が分からないのか自分にははっきりつかみきれません。まさか「検索ぜんぜんしていない」ということはないと思うのですが・・・
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/17 06:35