次のコードを検討してください。
FileOutputStream stream=null;
ObjectOutputStream objStr=null;
try
{
stream=new FileOutputStream(defaultFile);
objStr=new ObjectOutputStream(stream);
objStr.writeObject(obj);
objStr.close();
}
catch(FileNotFoundException e)
{
System.out.println("Il file "+ defaultFile+ " non è stato trovato\n");
}
catch(IOException e)
{
stream.close();
System.out.println("Si è verificato un problema di I/O nell' apertura dello stream");
}
2 番目の catch ブロックでは、ストリームを閉じますが、閉じる必要があるかどうかはわかりません。
ObjectOutputStream のコンストラクターが失敗した場合は 2 番目の catch に入りますが、この場合、FileOutputStream は開いたままになるのでしょうか?
すべての例外を処理するために finally ブロックを作成しますか?
すべてのケースを把握するのは難しいです。