Comment : intercepter une exception dans Visual Basic
Mise à jour : novembre 2007
Cet exemple illustre comment utiliser un bloc Try et Catch pour intercepter des exceptions.
Exemple
Cet exemple illustre comment utiliser un bloc Try…Catch pour intercepter une exception OverflowException.
Cet exemple de code est également disponible sous forme d'extrait de code IntelliSense. Dans le sélecteur d'extrait de code, il se trouve en Langage Visual Basic. Pour plus d'informations, consultez Comment : insérer des extraits de code dans votre code (Visual Basic).
Dim Top As Double = 5
Dim Bottom As Double = 0
Dim Result As Integer
Try
Result = CType(Top / Bottom, Integer)
Catch Exc As System.OverflowException
MsgBox("Attempt to divide by zero resulted in overflow")
End Try
Cet exemple nécessite :
- Référence à l'espace de noms System.
L'exemple de code suivant implémente un bloc Try...Catch qui gère Exception, IOException et toutes les exceptions qui dérivent de IOException.
Try
' Add code for your I/O task here.
Catch dirNotFound As System.IO.DirectoryNotFoundException
Throw dirNotFound
Catch fileNotFound As System.IO.FileNotFoundException
Throw fileNotFound
Catch pathTooLong As System.IO.PathTooLongException
Throw pathTooLong
Catch ioEx As System.IO.IOException
Throw ioEx
Catch security As System.Security.SecurityException
Throw security
Catch ex As Exception
Throw ex
Finally
' Dispose of any resources you used or opened in the Try block.
End Try
Ajoutez le code à exécuter au bloc Try.
Programmation fiable
Utilisez ce bloc de code comme point de départ pour encapsuler une opération de données dans une instruction Try...Catch. Ce bloc Try...Catch est conçu pour intercepter et lever de nouveau toutes les exceptions. Il se peut que cela ne soit pas le bon choix pour votre projet. Pour une discussion sur les options de gestion des exceptions, consultez Méthodes conseillées pour l'utilisation d'extraits de code IntelliSense.
Vous pouvez réduire la probabilité des exceptions en utilisant des contrôles Windows Forms, tels que le composant OpenFileDialog, composant (Windows Forms) et les contrôles de composant SaveFileDialog, composant (Windows Forms) qui limite les choix de l'utilisateur aux noms de fichiers valides. La propriété FileInfo.Exists peut vérifier si un fichier existe avant d'essayer de l'ouvrir. Notez toutefois que l'utilisation de ces contrôles et de ces classes n'est pas à toute épreuve. Le système de fichiers peut changer entre le moment où l'utilisateur sélectionne un fichier et celui où le code s'exécute. La gestion des exceptions sera par conséquent presque toujours nécessaire lors de l'utilisation de fichiers.
Sécurité
Pour de nombreuses tâches sur les fichiers, l'assembly requiert un niveau de privilège accordé par la classe FileIOPermission. Si vous exécutez le programme dans un contexte partiellement fiable, le code peut lever une exception en raison de privilèges insuffisants. Pour plus d'informations, consultez Notions fondamentales de la sécurité d'accès du code. L'utilisateur nécessite également un accès au fichier, s'il existe. Pour plus d'informations, consultez Listes de contrôle d'accès.
Ne vous basez pas sur l'extension d'un nom de fichier pour en déterminer le contenu. Par exemple, il se peut que le fichier nommé Form1.vb ne soit pas un fichier source Visual Basic.
Voir aussi
Tâches
Comment : lever une exception dans Visual Basic
Comment : tester du code à l'aide d'un bloc Try…Catch dans Visual Basic
Comment : nettoyer des ressources avec un bloc Try...Finally dans Visual Basic
Comment : filtrer des erreurs dans un bloc Catch dans Visual Basic
Comment : vérifier l'exception interne d'une exception
Résolution des problèmes liés à la gestion des exceptions
Concepts
Cas d'utilisation de la gestion structurée ou non structurée des exceptions