私の知る限りでは、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ドキュメントも参照してください。
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キーワードの直後の括弧内に表示されます。 Java SE 7以降のクラスBufferedReaderは、インターフェースJava.lang.AutoCloseableを実装します。BufferedReaderインスタンスはtry-with-resourceステートメントで宣言されているため、 tryステートメントが正常に終了するか、突然終了するか(メソッドBufferedReader.readLineがIOExceptionをスローした結果)。