Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Comparaison entre try/finally et le try-with-resources

Mise en oeuvre d'une classe d'exception Aspects complémentaires du traitement d'exceptions



Accès rapide :
La vidéo
Utilisation conjointe d'un « try-with-resources » et de l'inférence de types pour les variables locales

La vidéo

Il est courant en Java de chercher à libérer des ressources à la fin de l'exécution d'un bloc try. Le langage Java permet cela depuis le début de son histoire via le bloc finally. Depuis Java SE 7.0, une nouvelle construction, le try-with-resources, vient compléter nos possibilités à ce sujet. Cette vidéo compare ces deux approches, exemples à l'appui.


Mise en oeuvre d'une classe d'exception

Utilisation conjointe d'un « try-with-resources » et de l'inférence de types pour les variables locales

Nous en avons déjà parlé dans le chapitre relatif à l'inférence de types pour les variables locales, mais Java SE 10 propose une manière de simplifier la déclaration de vos variables locales. Les ressources gérées par le « try-with-resources » étant aussi gérées par des variables locales, il est possible d'y utiliser le mot clé var. Voici un exemple de code appliqué à une exécution de code en base de données.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
try ( var connection = DriverManager.getConnection() ) {
    String strSql = "SELECT * FROM Table WHERE pk=?";
    try ( var statement = connection.prepareStatement( strSql ) {
        statement.setInt( 1, 55 );
        try ( var resultSet = statement.executeQuery() ) {
            // TODO: finish the code
        }
    }
}
Exemple d'utilisation de l'inférence de type avec la gestion de ressources du bloc try
cet extrait de code s'appuie sur l'API JDBC (Java DataBase Connectivity) permettant de se connecter à une base de données de type SQL. Si vous ne connaissez pas encore cette librairie, rien de grave, nous y reviendrons ultérieurement. Pour l'heure comprenez juste que les types des trois variables (connection, statement et resultSet) sont déduits des appels de méthodes associées.


Mise en oeuvre d'une classe d'exception Aspects complémentaires du traitement d'exceptions