Opération à effectuer en cas de problème : gestion des erreurs

Mise à jour : novembre 2007

Dans cette leçon, vous apprendrez comment créer un code de gestion des erreurs de base pour vos programmes.

Même les programmes les mieux conçus rencontrent parfois des erreurs. Certaines erreurs sont des défauts au sein de votre code, qui peuvent être localisés, puis corrigés. D'autres erreurs sont une conséquence normale du fonctionnement du programme ; par exemple, votre programme peut tenter d'ouvrir un fichier qui est déjà en cours d'utilisation. Dans les cas de ce type, les erreurs peuvent être prévues, mais ne peuvent pas être empêchées. En tant que programmeur, votre travail consiste à prévoir ces erreurs et à aider votre programme à les traiter.

Erreurs d'exécution

Une erreur qui se produit pendant qu'un programme est en cours d'exécution est appelée erreur d'exécution (ou erreur de runtime). Une erreur d'exécution se produit lorsqu'un programme tente d'exécuter une opération pour laquelle il n'a pas été conçu. Par exemple, si votre programme tente d'exécuter une opération non valide, telle que la conversion d'une chaîne non numérique en valeur numérique, une erreur d'exécution se produit.

Lorsqu'une erreur d'exécution se produit, le programme publie une exception qui gère les erreurs en recherchant dans le programme le code correspondant. Si aucun code de ce type n'est détecté, le programme s'arrête et doit être redémarré. Cette situation pouvant conduire à une perte de données, il est recommandé de créer un code de gestion des erreurs en tout point où vous prévoyez qu'une erreur est susceptible de se produire.

Bloc Try...Catch...Finally

Vous pouvez utiliser le bloc Try...Catch...Finally pour gérer les erreurs d'exécution au sein de votre code. Vous pouvez appliquer Try à un segment de code ; si une exception est générée par ce code, le programme passe au bloc Catch. Le code présent dans le bloc Catch est alors exécuté. Une fois l'exécution de ce code terminée, tout code présent dans le bloc Finally est exécuté. Le bloc Try...Catch...Finally entier est fermé par une instruction End Try. L'exemple suivant illustre l'utilisation de chaque bloc :

Try
  ' Code here attempts to do something.
Catch
  ' If an error occurs, code here will run.
Finally
  ' Code in this block will always run.
End Try

En premier lieu, le code du bloc Try est exécuté. S'il s'exécute sans erreur, le programme passe au bloc Catch et exécute le code dans le bloc Finally. Si une erreur se produit dans le bloc Try, l'exécution passe immédiatement au bloc Catch. Le code présent dans ce bloc est alors exécuté. Ensuite, le code du bloc Finally est exécuté.

Essayez !

Pour utiliser le bloc Try...Catch

  1. Dans le menu Fichier, choisissez Nouveau projet.

  2. Dans la boîte de dialogue Nouveau projet, dans le volet Modèles, cliquez sur Application Windows.

  3. Dans la zone Nom, tapez TryCatch, puis cliquez sur OK.

    Un nouveau projet Windows Forms s'ouvre.

  4. Depuis la Boîte à outils, faites glisser un contrôle TextBox et un contrôle bouton dans le formulaire.

  5. Double-cliquez sur Button pour ouvrir l'éditeur de code.

  6. Dans le gestionnaire d'événements Button1_Click, tapez le code suivant :

    Try
      Dim aNumber As Double = CDbl(Textbox1.Text)
      MsgBox("You entered the number " & aNumber)
    Catch
      MsgBox("Please enter a number.")
    Finally
      MsgBox("Why not try it again?")
    End Try
    
  7. Appuyez sur F5 pour exécuter le programme.

  8. Dans la zone de texte, tapez une valeur numérique, puis cliquez sur le bouton. Un message affiche le nombre que vous avez entré suivi d'une invitation à essayer à nouveau.

  9. Ensuite, tapez une valeur non numérique dans la zone de texte, telle qu'un mot, puis cliquez sur le bouton. Cette fois, lorsque le programme tente de convertir le texte entré dans la zone de texte en un nombre, il n'y parvient pas et une erreur se produit. Au lieu de terminer le code du bloc Try, le programme exécute le bloc Catch, et un message s'affiche et vous invite à entrer un nombre. Le bloc Finally s'exécute alors et vous invite à essayer à nouveau.

Étapes suivantes

Dans cette leçon, vous avez appris comment utiliser des blocs Try...Catch...Finally pour créer une structure de gestion des erreurs de base. Cette leçon termine l'introduction au langage Visual Basic. Dans la série de leçons suivante, vous apprendrez comment créer l'interface utilisateur de vos programmes.

Leçon suivante : Création de l'aspect visuel de votre programme : introduction aux Windows Forms

Voir aussi

Tâches

Choix d'un programme entre deux possibilités : instruction If...Then

Connaissance des bogues : trois types d'erreurs de programmation

Référence

Try...Catch...Finally, instruction (Visual Basic)

Autres ressources

Gestion structurée des exceptions en Visual Basic