Bonsoir,

je suis plutôt débutant, et j'ai des difficultés à bien comprendre comment fonctionnent les exceptions mais surtout comment et quand elles remontent au niveau au dessus.

Exemple : imaginons une méthode static d'une classe de la DAO

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
public static MyObject getMyObjbyID(....) throws IOException, ClassNotFoundException, SQLException {
 
  Connection con = null;
  Statement stmt = null;
  ResultSet result = null;
 
  MyObject curObj = null;
  try {
        con = ..... (ouverture de la connexion)
        stmt = con.createStatement();
 
        req = "SELECT.......";
        log.error(...);
 
        result = stmt.executeQuery(req);
        if (result.next()){
            String titre = result.getString("TITRE");
            ....
 
            curObj = new MyObject(...);
            return curObj;
        }
  } finally {
       ... (fermeture de la connexion)
  }
 
  return null;
}
j'aimerai savoir si ce genre de code est "propre", et comment cela se passe d'un point de vue exception / au bloc try...finally.

Est ce qu'à la moindre exception, le bloc finally est executée et l'exception renvoyée par la méthode à l'étage au dessus ?
Ou doit rajouter un bloc catch qui fera un "throw new Exception(...)" ?

Bref quelques explications sont de rigueur

Merci