Что такое круглые скобки / круглые скобки () в try catch в Java [закрыто]
согласно моим знаниям мы используем try catch
следующим образом:
try {
//Some code that may generate exception
}
catch(Exception ex) {
}
//handle exception
finally {
//close any open resources etc.
}
но в коде я нашел следующее
try(
ByteArrayOutputStream byteArrayStreamResponse = new ByteArrayOutputStream();
HSLFSlideShow pptSlideShow = new HSLFSlideShow(
new HSLFSlideShowImpl(
Thread.currentThread().getContextClassLoader()
.getResourceAsStream(Constants.PPT_TEMPLATE_FILE_NAME)
));
){
}
catch (Exception ex) {
//handel exception
}
finally {
//close any open resource
}
Я не могу понять, почему это скобки ()
только после примерки.
каково его использование? Это новое в Java 1.7? Какой синтаксис я могу там написать?
Пожалуйста, также обратитесь ко мне некоторые документы API.
1 ответов
это попытка с синтаксисом ресурсов, который является новым в java 1.7. Он используется для объявления всех ресурсов, которые могут быть закрыты. Вот ссылка на официальную документацию. https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html
static String readFirstLineFromFile(String path) throws IOException {
try (BufferedReader br =
new BufferedReader(new FileReader(path))) {
return br.readLine();
}
}
в этом примере ресурс, объявленный в инструкции try-with-resources, является BufferedReader. Оператор объявления отображается в круглых скобках сразу после ключевого слова try. Этот класс BufferedReader, в Java SE 7 и более поздних версиях, реализует интерфейс java.ленг.AutoCloseable. Поскольку экземпляр BufferedReader объявлен в операторе try-with-resource, он будет закрыт независимо от того, завершается ли оператор try нормально или резко (в результате метода BufferedReader.readLine бросает исключение IOException).