Gestion des exceptions dans VB.Net : exemples de gestion Try & Catch

Qu’est-ce qu’une exception dans VB.Net ?

An Exception dans VB.Net fait référence à un problème qui survient lors de l'exécution du programme. Elle est provoquée par une circonstance inattendue. Un bon exemple est lorsque vous effectuez une opération de division, puis que vous divisez par zéro (0). Une exception sera levée.

Qu’est-ce que la gestion des exceptions dans VB.Net ?

Avec des exceptions dans VB.Net, vous pouvez transférer le contrôle d'un programme d'une partie à une autre. Dans VB.Net, les exceptions sont gérées à l'aide des 4 mots-clés suivants :

Mots-clés Détails
Essayez Le travail du bloc Try consiste à identifier le bloc de code pour lequel une exception spécifique sera activée. Il doit être suivi d'un ou plusieurs blocs catch.
Attraper La capture de l'exception se fait dans ce bloc. Il s'agit d'un gestionnaire d'exceptions dans lequel l'exception est gérée.
Finalement Utilisez le bloc Enfin pour exécuter un ensemble d'instructions, qu'une exception se soit produite ou non.
Jeter Une exception est levée après l'apparition d'un problème. C'est le travail du mot-clé Throw.

Syntaxe de Try Catch dans VB.Net

Les instructions Try Catch dans VB.Net sont définies à l'aide de la syntaxe ci-dessous :

Try
   [ try_Statement(s) ]
   [ Exit Try ]
[ Catch [ exception_name [ As type ] ] [ When expression ]
   [ catch_Statement(s) ]
   [ Exit Try ] ]
[ Catch ... ]
[ Finally
   [ finally_Statement(s) ] ]
End Try

Le bloc Try/Catch doit entourer le code susceptible de déclencher une exception. Ce code est appelé code protégé. Vous pouvez utiliser plusieurs instructions catch lorsque vous devez intercepter différents types d'exceptions.

Exemple de gestion des exceptions dans VB.Net avec Try Catch et Enfin

Avec les instructions Try/Catch, vous pouvez séparer votre code de programme ordinaire du système de gestion des erreurs. Montrons comment gérer une exception à l'aide des mots-clés Try, Catch et Enfin.

Étape 1) Créez une nouvelle application console.

Étape 2) Utilisez ce code:

Module Module1
    Sub divisionFunction(ByVal n1 As Integer, ByVal n2 As Integer)
        Dim answer As Integer
        Try
            answer = n1 \ n2
        Catch ex As DivideByZeroException
            Console.WriteLine("Exception: {0}", ex)
        Finally
            Console.WriteLine("Answer is: {0}", answer)
        End Try
    End Sub
    Sub Main()
        divisionFunction(4, 0)
        Console.ReadKey()
    End Sub

End Module

Étape 3) Cliquez sur le bouton Démarrer de la barre d'outils pour exécuter le code. Vous devriez obtenir le résultat suivant :

Gestion des exceptions

Voici une capture d'écran du code :

Gestion des exceptions

Explication du code :

  1. Création d'un module nommé Module1.
  2. Création d'une sous-procédure nommée divisionFunction avec deux arguments entiers n1 et n2. Le ByVal est un mot-clé VB.Net indiquant que les valeurs des arguments seront transmises par valeur.
  3. Création d'une variable entière nommée réponse.
  4. Début du bloc Try/Catch. Nous devons entourer le code qui, selon nous, pourrait déclencher une exception avec ce bloc.
  5. Effectuer une opération de division entre les valeurs des variables n1 et n2. Le résultat de l'opération de division est affecté à la variable réponse. Ce code peut déclencher une exception, par exemple, lorsque nous divisons un nombre par zéro, c'est pourquoi nous l'avons entouré des blocs Try/Catch.
  6. Attraper l'exception nommée DivideByZeroException et attribuer le message d'exception généré à l'ex.
  7. Impression de texte sur la console pour informer l'utilisateur du type/nom de l'exception qui a été déclenchée.
  8. Le bloc Enfin. Cela s'exécutera, qu'une exception soit interceptée ou non.
  9. Impression d'un texte sur la console montrant le résultat de l'opération de division.
  10. Fin du bloc Try, c'est-à-dire fin du code de gestion des erreurs.
  11. Fin de la sous-procédure divisionFunction.
  12. Début de la sous-procédure principale.
  13. Appel/invocation de la sous-procédure divisionFunction. Les valeurs des deux arguments entiers sont transmises ici. La valeur de n1=4 et n2=0. Cela signifie que l’opération de division sera 4\0, c’est-à-dire n1\n2.
  14. Suspendre la fenêtre de la console en attendant que l'utilisateur agisse pour la fermer.
  15. Fin de la sous-procédure principale.
  16. Fin du module.

Exceptions définies par l'utilisateur dans VB.Net

VB.Net vous permet de définir vos propres exceptions. Vous pouvez obtenir des classes d'exception définies par l'utilisateur à partir de la classe ApplicationException. Démontrons cela par un exemple :

Exemple d'exception définie par l'utilisateur dans VB.Net

Voici un exemple d'exception définie par l'utilisateur dans VB.Net :

Étape 1) Créez une nouvelle application console.

Étape 2) Utilisez le code suivant :

Module Module1

    Public Class HeightIsZeroException : Inherits ApplicationException
        Public Sub New(ByVal text As String)
            MyBase.New(text)
        End Sub
    End Class
    Public Class Height
        Dim height As Integer = 0
        Sub showHeight()
            If (height = 0) Then
                Throw (New HeightIsZeroException("Zero Height found"))
            Else
                Console.WriteLine("Height is: {0}", height)
            End If
        End Sub
    End Class
    Sub Main()
        Dim hght As Height = New Height()
        Try
            hght.showHeight()
        Catch ex As HeightIsZeroException
            Console.WriteLine("HeightIsZeroException: {0}", ex.Message)
        End Try
        Console.ReadKey()
    End Sub

End Module

Étape 3) Cliquez sur le bouton Démarrer dans la barre supérieure pour exécuter le code. Vous devriez obtenir le résultat suivant :

Exception définie par l'utilisateur

Voici une capture d'écran du code :

Exception définie par l'utilisateur

Explication du code :

  1. Création d'un module nommé Module1.
  2. Création d'une classe d'exception nommée HeightIsZeroException. La classe hérite de toute la classe ApplicationException.
  3. Création d'une sous-procédure nommée Nouveau. Il faudra un argument de chaîne nommé texte.
  4. Appeler le constructeur de la classe de base et lui transmettre l'argument ci-dessus.
  5. Fin de la sous-procédure Nouvelle.
  6. Fin de la classe HeightIsZeroException.
  7. Création d'une classe nommée Height. Son modificateur d'accès public est Public, ce qui signifie qu'il sera accessible publiquement.
  8. Création d'une variable entière nommée Height et initialisation de sa valeur à 0.
  9. Création d'une sous-procédure nommée showHeight().
  10. Vérifier quand la valeur de la variable Height est 0. Nous avons utilisé la condition If…Then.
  11. Pour lancer l'exception HeightIsZeroException si la condition ci-dessus est vraie. Le message Zero Height Found sera affiché lorsque cette exception est levée.
  12. La partie Else à exécuter lorsque la condition If n'est pas vraie.
  13. Message à imprimer sur la console indiquant la Hauteur lorsqu'elle n'est pas 0.
  14. Fin de la condition If.
  15. Fin de la sous-procédure showHeight().
  16. Fin du cours Hauteur.
  17. Début de la sous-procédure principale.
  18. Création d'un objet nommé Height en tant qu'instance de la classe Height.
  19. Début du bloc de gestion des exceptions.
  20. Invocation de la sous-procédure showHeight() définie dans la classe Height. Nous avons utilisé un objet de cette classe pour accéder à cette méthode. Cette ligne peut donner lieu à une exception. Par conséquent, nous l’avons entouré d’un code de gestion des exceptions.
  21. Attraper l'exception HeightIsZeroException en tant qu'objet ex au cas où cela se produirait.
  22. Message à imprimer sur la console lorsque l'exception HeightIsZeroException est interceptée.
  23. Fin du bloc de gestion des exceptions.
  24. Suspendez la fenêtre de la console en attendant qu'un utilisateur agisse pour la fermer.
  25. Fin de la sous-procédure principale.
  26. Fin du module.

Lancer une exception dans VB.Net

Dans la gestion des exceptions, vous pouvez choisir de lancer un objet. Cependant, l'objet doit être dérivé de System. Classe d'exception, directement ou indirectement. Par exemple:

Exemple de levée d'exception dans VB.Net

Vous trouverez ci-dessous un exemple d'exception de lancement dans VB.Net :

Étape 1) Créez une nouvelle application console.

Étape 2) Utilisez le code suivant :

Module Module1

    Sub Main()
        Try
            Throw New ApplicationException("Throwing a custom exception")
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        Finally
            Console.WriteLine("The Finally Block")
        End Try
        Console.ReadKey()
    End Sub


End Module

Étape 3) Cliquez sur le bouton Démarrer dans la barre supérieure pour exécuter le code. Vous devriez obtenir ce qui suit :

Lancer l'exception

Voici une capture d'écran du code :

Lancer l'exception

Explication du code :

  1. Création d'un module nommé Module1.
  2. Début de la sous-procédure principale.
  3. Début du code de gestion des erreurs.
  4. Lancer un objet d'exception. Ce code peut générer une exception, nous l'avons donc entouré d'un bloc Try/Catch.
  5. Attraper une exception en tant qu'objet ex si la ligne lève une exception.
  6. Impression du message d'exception sur la console au cas où cela se produirait.
  7. Le bloc Enfin à exécuter, qu'une exception soit interceptée ou non.
  8. Le message à imprimer sur la console lorsque le bloc Enfin est exécuté.
  9. Fin du code de gestion des exceptions.
  10. Mettez la console en pause pendant un moment en attendant qu'un utilisateur agisse pour la fermer.
  11. Fin de la sous-procédure principale.
  12. Fin du module.

Résumé

  • Une exception fait référence à un problème survenant lors de l’exécution d’un programme provoqué par une circonstance inattendue.
  • Si vous pensez qu'un code générera une exception, entourez-le d'un bloc Try/Catch.
  • Le bloc Enfin vient après le bloc Try/Catch et s'exécute qu'une exception soit interceptée ou non.
  • VB.Net nous permet de créer des exceptions personnalisées.