Gestion des exceptions en VB.Net (Try Catch)
โก Rรฉsumรฉ intelligent
La gestion des exceptions en VB.Net permet de gรฉrer les erreurs d'exรฉcution, telles que la division par zรฉro, ร l'aide des mots clรฉs Try, Catch, Finally et Throw, afin qu'un programme puisse rรฉagir aux problรจmes avec รฉlรฉgance au lieu de planter pendant son exรฉcution.
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. |
Les rรดles de ces quatre mots-clรฉs รฉtant clairs, rรฉflรฉchissez ร la maniรจre dont ils se combinent au sein d'une mรชme phrase.
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
Les instructions Try/Catch permettent de sรฉparer le code normal du systรจme de gestion des erreurs. Prenons l'exemple de la gestion d'une exception ร l'aide des mots-clรฉs Try, Catch et Finally.
ร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 :
Voici une capture d'รฉcran du code :
Explication de Code:
- Crรฉation d'un module nommรฉ Module1.
- 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.
- Crรฉation d'une variable entiรจre nommรฉe rรฉponse.
- Dรฉbut du bloc Try/Catch. Nous devons entourer le code qui, selon nous, pourrait dรฉclencher une exception avec ce bloc.
- 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.
- Attraper l'exception nommรฉe DivideByZeroException et attribuer le message d'exception gรฉnรฉrรฉ ร l'ex.
- Impression de texte sur la console pour informer l'utilisateur du type/nom de l'exception qui a รฉtรฉ dรฉclenchรฉe.
- Le bloc Enfin. Cela s'exรฉcutera, qu'une exception soit interceptรฉe ou non.
- Impression d'un texte sur la console montrant le rรฉsultat de l'opรฉration de division.
- Fin du bloc Try, c'est-ร -dire fin du code de gestion des erreurs.
- Fin de la sous-procรฉdure divisionFunction.
- Dรฉbut de la sous-procรฉdure principale.
- 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.
- Suspendre la fenรชtre de la console en attendant que l'utilisateur agisse pour la fermer.
- Fin de la sous-procรฉdure principale.
- 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'exceptions personnalisรฉes ร partir de la classe ApplicationException. Prenons un exemple pour illustrer cela :
Exemple d'exception dรฉfinie par l'utilisateur dans VB.Net
Voici un exemple d'exception dรฉfinie par l'utilisateur en 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 :
Voici une capture d'รฉcran du code :
Explication de Code:
- Crรฉation d'un module nommรฉ Module1.
- Crรฉation d'une classe d'exception nommรฉe HeightIsZeroException. La classe hรฉrite de toute la classe ApplicationException.
- Crรฉation d'une sous-procรฉdure nommรฉe Nouveau. Il faudra un argument de chaรฎne nommรฉ texte.
- Appeler le constructeur de la classe de base et lui transmettre l'argument ci-dessus.
- Fin de la sous-procรฉdure Nouvelle.
- Fin de la classe HeightIsZeroException.
- Crรฉation d'une classe nommรฉe Height. Son modificateur d'accรจs public est Public, ce qui signifie qu'il sera accessible publiquement.
- Crรฉation d'une variable entiรจre nommรฉe Height et initialisation de sa valeur ร 0.
- Crรฉation d'une sous-procรฉdure nommรฉe showHeight().
- Vรฉrifier quand la valeur de la variable Height est 0. Nous avons utilisรฉ la condition IfโฆThen.
- 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.
- La partie Else ร exรฉcuter lorsque la condition If n'est pas vraie.
- Message ร imprimer sur la console indiquant la Hauteur lorsqu'elle n'est pas 0.
- Fin de la condition If.
- Fin de la sous-procรฉdure showHeight().
- Fin du cours Hauteur.
- Dรฉbut de la sous-procรฉdure principale.
- Crรฉation d'un objet nommรฉ Height en tant qu'instance de la classe Height.
- Dรฉbut du bloc de gestion des exceptions.
- Appel 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 gรฉnรฉrer une exception ; par consรฉquent, nous l'avons entourรฉe d'un bloc de gestion des exceptions.
- Attraper l'exception HeightIsZeroException en tant qu'objet ex au cas oรน cela se produirait.
- Message ร imprimer sur la console lorsque l'exception HeightIsZeroException est interceptรฉe.
- Fin du bloc de gestion des exceptions.
- Suspendez la fenรชtre de la console en attendant qu'un utilisateur agisse pour la fermer.
- Fin de la sous-procรฉdure principale.
- Fin du module.
Lancer une exception dans VB.Net
Lors de la gestion des exceptions, vous pouvez choisir de lever un objet. Toutefois, cet objet doit hรฉriter de la classe System.Exception, directement ou indirectement. Par exemple :
Exemple de levรฉe d'exception dans VB.Net
Voici un exemple de levรฉe d'exception en 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 :
Voici une capture d'รฉcran du code :
Explication de Code:
- Crรฉation d'un module nommรฉ Module1.
- Dรฉbut de la sous-procรฉdure principale.
- Dรฉbut du code de gestion des erreurs.
- Lancer un objet d'exception. Ce code peut gรฉnรฉrer une exception, nous l'avons donc entourรฉ d'un bloc Try/Catch.
- Attraper une exception en tant qu'objet ex si la ligne lรจve une exception.
- Impression du message d'exception sur la console au cas oรน cela se produirait.
- Le bloc Enfin ร exรฉcuter, qu'une exception soit interceptรฉe ou non.
- Le message ร imprimer sur la console lorsque le bloc Enfin est exรฉcutรฉ.
- Fin du code de gestion des exceptions.
- Mettez la console en pause pendant un moment en attendant qu'un utilisateur agisse pour la fermer.
- Fin de la sous-procรฉdure principale.
- Fin du module.






