[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 11293] Re: 「 Java プログラミングの処方箋」



  高橋(智)です。
  先日買って読みました。感想は徹さんとほぼ同様です。

  ただ、P129のコラム「finallyでclose()の功罪」の部分はよくわかり
ませんでした。要約するとこんな感じです。  

============================================================================
  以下のようなコードでは、close()のcatch節で例外を無視しているが、
バッファフラッシュが伴う場合には、close()の呼び出し時にIOException
が送出される可能性が高い。特に書き込む量が少ない時には要注意。
  catch節では無視せずログを採ろう。

public class BWTest {
  public static void main(String[] args) {
    java.io.BufferedWriter wtr = null;
    try {
      wtr = new java.io.BufferedWriter(new java.io.FileWriter("C:\\test.txt"));
      // 書き込み時、バッファリング可能な量であれば例外は起きない
      wtr.write("test");
    }
    catch(java.io.IOException ex) {
      ex.printStackTrace();
    }
    finally {
      if( wtr != null ) {
        // クローズ時、バッファがフラッシュされるので例外の可能性が高い
        try { wtr.close(); } catch(java.io.IOException ex) { } // <-- ここ!!
      }
    }
  }
}
============================================================================

-- 
高橋智宏
  Java読書会( http://www.javareading.com/bof/ )

Murayama Toshikiyo wrote:
> 
> 村山@NETGENEです。
> 
> ・「Javaプログラミングの処方箋」
> 翔泳社、4-7981-0697-6、3,360
> 
> 出たようですが、誰か読まれた方はいませんか?
> 
> この手の本は興味はあるものの、内容がイマイチな場合が多いもので...