Обычно, когда речь идет о Java IO-коде, вот что я написал
FileOutputStream out = null;
try
{
out = new FileOutputStream("myfile.txt");
// More and more code goes here...
}
catch (Exception e)
{
}
finally
{
// I put the close code in finally block, to enture the opened
// file stream is always closed even there is exception happened.
if (out != null) {
// Another try catch block, troublesome.
try {
out.close();
} catch (IOException ex) {
}
}
}
Как вы можете видеть, когда я пытаюсь закрыть поток файлов, мне нужно иметь дело с другим блоком try... catch.
Посмотрите на беспокойство: (
Есть ли способ избежать? Я не чувствую себя комфортно в том, чтобы поместить закрытый код в блок без окончания, поскольку исключение, вызванное другими кодами, не даст никаких шансов для вызова "close".