Bonjour,
je m'interroge sur un point.
J'ai une méthode qui doit ajouter un objet dans une liste si celui-ci n'existe pas déjà dans la liste.
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part void AddObject ( MyClass obj);
Si l'objet a été ajouté à la liste, il faut l'indiquer à l'objet appelant pour qu'il effectue une action.
Si l'objet n'a pas été ajouté à la liste, il faut aussi l'indiquer à l'objet appelant pour qu'il effectue une autre action.
Que vaut-il mieux faire ?
Utiliser un paramètre de retour de type bool:
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if (AddObject(myObj)) DoAThing(); else DoOtherThing();
Ou vaut-il mieux modifier la référence de l'objet pour la faire pointer vers nulle:
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 AddObject(ref myObj); if (myObj==null) DoAThing(); else DoOtherThing();
Ou vaut-il mieux lancer une exception ?
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 try { AddObject(myObj); DoAThing(); } catch (AddObjectException ex) { DoOtherThing(); }
avec
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public class AddObjectException:Exception { [..] }
Pourriez-vous m'éclairer sur ce point ?
Merci bien à vous.






Répondre avec citation




, une levee d'exception doit se produire exceptionnellement (ce qui n'empeche pas d'utiliser le try catch pour blinder son code). Si t'es dans une methode de validation quel est l'interet de lever une exception pour traiter un de tes cas a valider?
Partager