Bonjour,

j ai un debat avec des collègues sur la gestion des exceptions. Imaginons la fonction suivante. (une fonction simple qui convertit une chaine de caractère en entier)


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
 
Public Function StringToInteger(ByVal Value As String, Optional ByVal DefaultValue As Integer = 0) As Integer
 
        Dim mResult As Integer
 
        Try
            'Convert the value 
            mResult = CInt(Value)
 
            'Return converted value 
            Return mResult
        Catch mException As Exception
            'As error occurred, return the default value
            Return DefaultValue
        End Try
 
    End Function
Dans ce cas, si la valeur de Value est vide, alors je vais avoir une exception de levée et la valeur retournée sera DefaulValue.

Ne vaut il pas alors rajouter un test sur la valeur de Value avant d'effectuer la conversion?


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
 
Public Function StringToInteger(ByVal Value As String, Optional ByVal DefaultValue As Integer = 0) As Integer
 
        Dim mResult As Integer
 
        Try
            'Check if value was specified
            If Value = String.Empty Then Return DefaultValue
 
            'Convert the value 
            mResult = CInt(Value)
 
            'Return converted value 
            Return mResult
        Catch mException As Exception
            'As error occurred, return the default value
            Return DefaultValue
        End Try
 
    End Function
Quelle est la meilleurs méthode au niveau performance? Le If coute t il plus de ressource que la génération de l'exception?

Merci Billy21