Bonjour,

je souhaiterai quelques éclaircissement sur la gestion des exceptions en Java. J'ai lu pas mal de tutoriel sur le sujet mais cela ne répond pas bien à mes questions de développement.

Pour vous expliquer le problème, prenons un exemple :

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
 
 
 
	protected Session getSession() {
		Session ret = null;	
		if (this.sessionFactory!=null) {
			ret = this.sessionFactory.getCurrentSession();
		}		
		return ret;
	}
 
	 public boolean delete(Object o) {
		 boolean ret = false;		 
		 if (o==null) {
			 ret = true;
		 } else {
			 Session s = getSession();
			 if (s!=null) {
				 try {
		              s.beginTransaction();
		              s.delete(o);
		              s.getTransaction().commit();
		              logDebug("Successful delete.");
		              ret = true;
		         } catch (RuntimeException re) {
		        	 logError("Error during deleting.");
		             throw re;
		         }
			 } 
		 }
		 return ret;        
    }
En fait je ne sais ce que je dois faire dans le cas de méthode chainée. Dans mon exemple, si l'on arrive pas à récupérer la session (session est null), toutes les méthodes qui font un accès en BD (comme la méthode delete) ne peuvent pas faire leur boulot.

Que dois-je faire ? Lever une exception dans la méthode getSession ? Lever une exception dans la méthode delete (et potentiellement dans les autres qui utilisent getSession) ?

Faire propager l'exception en utilisant new Exception ("message", exception_precedente) ? Ne rien faire ? Au final je veux qu'à la fin je puisse afficher une page d'erreur correcte à l'utilisateur.

Merci d'avance