Je dois mettre à jour un code en appliquant les règles suivantes:
Si une exception est levée par s.execute() alors appeler c.rollback()
et propager l'exception,sinon appeler c.commit()
Dans tous les cas ,c.closest() doit être appelée avant de quitter la méthode a(Service s,Connection c)
le code est le suivant:
En suivant ces instructions j'ai donc complété en faisant le code suivant:
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
30
31
32
33
34
35 public class A { // doit executer le service avec les connections données void a(Service s,Connection c) { s.setConnection(c); s.execute(); } } interface Service{ void execute() throws Exception; void setConnection(Connection c); } interface Connection{ void commit(); void rollback(); } public static void main(String[] args) { Service service=new Service() { public void execute()throws Exception{ System.out.println("execute"); } public void setConnection(Connection c) { System.out.println("setConnection"); } }; }
j'ai suivi les instructions mais je ne sais pas si c'est juste
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 void a(Service s,Connection c) throws Exception { s.setConnection(c); s.execute(); c.rollback();//doit appeler rollback() si une exception est levée et propager l'exception c.commit();//Sinon appeler c.commit() c.close();//dans tous les cas appeler c.close() } } interface Service{ void execute() throws Exception; void setConnection(Connection c); } interface Connection{ void commit(); void rollback(); }
Qu'est ce que vous en pensez svp?
Partager