Bonjour,
Sur un projet de librairies, je me suis basé sur ce que dit le msdn ici et ici pour gérer les exceptions, comme : ne pas rattraper les ApplicationException et les SystemException, ni en hériter. De plus, il indique (ici) de ne pas en abuser car l'instruction throw plombe les perf... Est-ce aussi le cas des blocs try/catch/finally ???
Le dernier lien propose aussi 2 patterns (je ne sais pas si j'ai bien compris) :
- Tester-Doer pattern : consiste à vérifier chaque paramètre avant l'appel d'une méthode pour éviter de l'appeler avec un paramètre qui génèrera une exception.
- TryParse pattern : consiste à créer 2 fonctions... bref tout le monde connait, ex: int.Parse/TryParse ou DateTime.ParseExact/TryParseExact.
Y a-t-il d'autres patterns de gestion d'exception ???
J'ai tenté d'implémenter la 2nd option :Mais je ne vois pas l'avantage car dans un cas l'exception est rattrapée par la méthode "appelante", dans l'autre par la méthode appelée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class MyClass { public void DoSomething() { [...] } public bool TryDoSomething() { try { DoSomething(); return true; } catch { return false; } } }Or dans les 2 cas, une exception est lancée...
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 public class MyTester { public MyClass MyObject = new MyClass(); public void DoSomethingTest() // cas 1 { try { MyObject.DoSomething(); } catch { [...] } // Log error } public void TryDoSomethingTest() // cas 2 { if (!MyObject.TryDoSomething()) [...] // Log error } }
J'ai du faire une erreur, quelqu'un peut m'aider svp ?
Partager