Selon mes connaissances, nous utilisons try catch
comme suit:
try {
//Some code that may generate exception
}
catch(Exception ex) {
}
//handle exception
finally {
//close any open resources etc.
}
Mais dans un code que j'ai trouvé à la suite
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
}
Je n'arrive pas à comprendre pourquoi cette parenthèse ()
juste après avoir essayé.
Quelle en est l'utilité? Est-ce nouveau dans Java 1.7? Quel type de syntaxe puis-je y écrire?
Veuillez également me renvoyer certains documents API.
C'est essayer avec la syntaxe des ressources qui est nouvelle dans Java 1.7. Il est utilisé pour déclarer toutes les ressources qui peuvent être fermées. Voici le lien vers la documentation officielle. 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();
}
}
Dans cet exemple, la ressource déclarée dans l'instruction try-with-resources est un BufferedReader. L'instruction de déclaration apparaît entre parenthèses immédiatement après le mot clé try. La classe BufferedReader, dans Java SE 7 et versions ultérieures, implémente l'interface Java.lang.AutoCloseable. Étant donné que l'instance BufferedReader est déclarée dans une instruction try-with-resource, elle sera fermée indépendamment de si l'instruction try se termine normalement ou brusquement (en raison de la méthode BufferedReader.readLine lançant une IOException).