Что такое круглые скобки / круглые скобки () в 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).