Partager via


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