2014-12-17 3 views
1

new JarFile(path) может вызывать исключение ввода-вывода.Должен ли я закрывать JarFile, если он вызывает ошибку ввода-вывода при его открытии? (Действуют ли общие правила обработки потоков?)

Если это произойдет, и я поймаю исключение, должен ли я его закрыть? (Я думаю, что реальный вопрос: есть ли что-нибудь, чтобы закрыть?)

Другой вопрос: если он работает, следует ли очищать? I.e., применяются ли general rules for dealing with streams?

Извините, если вопрос немного нахаль; Я новичок в работе с JarFile (и на самом деле не использовал потоки в прошлом).

ответ

2

Там нет ничего, чтобы закрыть, если new JarFile(path) бросает IOException:

JarFile file = null; 

try { 
    file = new JarFile("does/not/exist"); 
} catch (IOException e) { 
    System.out.println(file); //Prints out null 
} 

try { 
    file.close(); //Throws NullPointerException 
} catch (IOException e) { 
    e.printStackTrace(); 
}