リソースの要求/クローズをする時のJava try/catch/finallyのベストプラクティスは?の回答に記載がございました。
When you do a close or flush on an output stream, there is a "once in a blue moon" chance that an exception will be thrown due to disc errors or file system full. You should not squash this exception!.
アウトプットストリームをclose
、flush
するときに、滅多にないことではあるが、ディスクエラーが起きたり、ファイルシステムに満杯になるとexception
を投げます。このexception
を閉じるべきではない。
ディスクエラーかファイルシステムが起きた時にclose()
でエラーが発生するそうです。
しかし、flush()
メソッドをtry
文の中に入れればこのエラーは検出してcatchできるので
特にこっちのclose()
メソッドでわざわざ報告する必要はないよと
報告者はソースコードコメントに書いています。
老婆心で申し上げると自分もclose()
で発生するエラーに関して、
どうしてこれだけ違うところでcatch()
するの?と思っていたので
Java7のtry-with-resources
により
ストリームを開き閉じることにより発生するException
を同じ文脈で処理できるようになって
嬉しいですね。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/01/31 15:33