Bonjour à toute la communauté,
Je suis tombé sur un code que je n'ai pas apprécié qui, pour afficher un message à l'utilisateur, levait des exceptions.
Voici le code :
J'en ai parlé à un autre dev qui me dit faire pareil.
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 If Chose > 0 Then If machin = 0 Then If truc > -1 And bazar <> 1684 Then ' ... ElseIf machin > -1 Then ' ... If truc > 0 Then '... Else Throw New ApplicationException("Il y a un problème pour le chargement de tous les calculs - comparaisonGRH ligne 198") ' Bon c'est la ligne 502 mais c'est pas grave... End If Else Throw New ApplicationException("Vous n'appartenez à aucun groupe autorisé à accéder à ce programme.") End If Else Throw New ApplicationException("Il y a un problème dans cAutoritésDeValidation.DetecterInfosLdap() - comparaisonGRH 204") End If Else Throw New ApplicationException("Vous ne disposez pas des autorités requises, veuillez vous adresser à votre administrateur.") End If Catch ex As Exception MessageBox.Show(ex.ToString, "MU0127VB - Comparaison GRH fichier Sepa et fichier log", MessageBoxButtons.OK, MessageBoxIcon.Error) Application.Exit() End Try
Il s'en suit une recherche sur la bonne gestion des exceptions, je tombe sur un tas d'articles qui me laissent penser que ce n'est pas propre.
Notamment celui-ci : http://kerrubin.wordpress.com/2014/0...es-exceptions/
et celui-ci : http://codebuild.blogspot.fr/2012/01...exception.htmlLes exceptions sont coûteuses en terme de performance.
Donc les utiliser avec parcimonie peut être une bonne idée.
Un processus de validation des arguments (Code Contracts ?) est une meilleure idée.
(il y en a plein d'autre...)Don't manage business logic with exceptions. Use conditional statements instead. If a control can be done with if-else statement clearly, don't use exceptions because it reduces readability and performance (e.g. null control, divide by zero control).
Vous en pensez quoi?
Partager