Programmation Visual Basic .NET/Gestion d'exception
Apparence
(Redirigé depuis Visual Basic .NET/Gestion d'exception)
Levées d'exception
[modifier | modifier le wikicode]Pour éviter que des erreurs bloquent l'exécution du programme il est possible de définir un comportement quand elles surviennent.
On Error GoTo
[modifier | modifier le wikicode]La méthode utilisée en VBA est toujours disponible. Celle-ci n'était pas structuré car fait appel à un Goto vers une étiquette :
Public Sub Main()
On Error GoTo Etiquette1
Dim Resultat As Integer = 2
Dim a = 1
Dim b = 0
Resultat = a / b ' Division par zéro
Etiquette1:
MessageBox.Show(Resultat) ' renvoie 2
End Sub
Pour éviter d'avoir à définir des étiquettes on peut tout simplement ignorer les erreurs un moment (puis les réactiver avec On Error GoTo 0
:
On Error Resume Next
Dim Resultat As Integer = 2
Dim a = 1
Dim b = 0
Resultat = a / b
On Error GoTo 0
MessageBox.Show(Resultat)
Try...Catch...Finally
[modifier | modifier le wikicode]Le gestionnaire d'erreur structuré s'appelle Try...Catch...Finally
[1]. De nombreux types d'erreur y sont disponible par héritage de la classe Exception
.
Public Sub Main()
Dim Resultat As Integer = 2
Dim a = 1
Dim b = 0
Try
Resultat = a / b
Catch ex As Exception
MsgBox(ex.ToString)
Finally
MessageBox.Show(Resultat)
End Try
End Sub
Remarque : pour relancer une exception dans un bloc Catch
, utiliser le mot clé Throw
sans argument. En effet il reset la propriété .StackTrace
de l'objet exception en cas d'argument[2].
Références
[modifier | modifier le wikicode]- ↑ (anglais) http://msdn.microsoft.com/fr-fr/library/fk6t46tz%28v=vs.71%29.aspx
- ↑ (anglais) Blog d'Eric Lippert