Notre salut : le catch !
Se place comme le
finally entre le
try et son
end try, mais
avant le
finally
Le catch va nous permettre de récupérer l'erreur dans une variable de type
exception.
Code : VB.NET
Que j'appelle ici "ex".
Ensuite je peux récupérer cette variable et m'en servir pour afficher l'erreur par exemple :
Code : VB.NET 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | Private Sub BT_ENVOI_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_ENVOI.Click
'On essaie
Try
Dim MonTxt As Integer
MonTxt = Me.TXT_IN.Text
Me.LBL_OUT.Text = MonTxt
'Si erreur, on l'affiche
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
|
Je l'affiche donc dans une MsgBox.
Voici le résultat :
Vous allez me dire que l'utilisateur lambda n'en a rien à faire de notre message d'erreur que lui il veut que ca marche !
Mais l'affichage n'est pas forcément nécessaire : on peut récupérer cette variable, l'écrire dans un fichier log, les possibilités sont multiples ou alors on la renvoie.
Pardon ?
Oui on la renvoie à l'étage du dessus : si c'est dans une fonction que l'erreur se produit ;
Code : VB.NET 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 | Private Sub BT_ENVOI_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_ENVOI.Click
Try
Bouton()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Private Sub Bouton()
'On essaie
Try
Dim MonTxt As Integer
MonTxt = Me.TXT_IN.Text
Me.LBL_OUT.Text = MonTxt
'Si erreur, on la renvoie à la fonction qui l'a appelée
Catch ex As Exception
Throw ex
End Try
End Sub
|
Donc, ici, j'envoie à l'instance du dessus l'erreur, une fois de retour dans cette fonction, le programme voit qu'une erreur s'est produite en amont, elle rentre elle-même dans son
catch.
Inutile me diriez-vous ? Pas forcément, pourquoi ne pas utiliser ce
try,
catch avec son
throw dans tout vos accès aux bases de données et ne pas utiliser un
try catch avec une gestion spécifique d'erreur dans la fonction qui les appelles toutes ?
Une seule gestion d'erreur pour vérifier des dizaines de requêtes, ce n'est pas magnifique

!