Académique Documents
Professionnel Documents
Culture Documents
Objectif Général
Ce chapitre présente les types d’erreurs susceptibles de survenir dans un programme ainsi
que les outils de débogage de Microsoft Visual Basic .NET qui va permettre aux étudiants de
diagnostiquer et de corriger ces erreurs. Ce chapitre explique comment utiliser le débogueur de
Microsoft Visual Studio .NET, les fenêtres de débogage et la gestion structurée des exceptions pour
déboguer un programme.
Objectifs Spécifiques
Pré-requis
Programmation orientée objet.
Volume horaire
3 Heures
La gestion des erreurs est fondamentale en programmation : une bonne gestion d’erreur
permet d’éviter tout plantage brusque de perte de données, renseigner le développeur sur l’origine
du problème et enfin proposer ou choisir des alternatives. On peut classer Les erreurs en trois
catégories :
Ce type d’erreur se produit au moment de la compilation, lorsqu’un mot clé du langage est
mal orthographié .Si une erreur de syntaxe est détectée, Visual Basic propose les solutions possibles
pour corriger cette erreur. Elles sont affichées en cliquant sur l’icône associée à l’erreur.
D’autre part les fautes d’orthographe dans les noms de propriétés ou de méthodes sont
facilement éliminées grâce aux fonctionnalités IntelliSense. IntelliSense prend en charge les
fonctionnalités suivantes :
Remarque : une erreur de syntaxe empêche la compilation du programme et de fait ne peut survenir
lors de l’exécution.
Ces erreurs apparaissent après la compilation, lorsque vous lancez l’exécution de votre
application. La syntaxe du code est correcte mais l’environnement de votre application ne permet
pas l’exécution d’une instruction utilisée dans votre application. C’est, par exemple, le cas si vous
essayez d’ouvrir un fichier qui n’existe pas sur le disque de votre machine. Vous obtiendrez
sûrement une boîte de dialogue de ce type.
Visual Basic permet la récupération de ce type d’erreur et évite ainsi l’affichage de cette inquiétante
boîte de dialogue. Deux techniques sont disponibles pour la gestion de ce type d’erreurs :
la gestion en ligne ;
les exceptions.
1.3. Les erreurs d e logique
Les erreurs de logique se produisent lorsqu’une application ne fonctionne pas comme elle le
devrait. Ces erreurs sont particulièrement difficiles à rechercher puisqu’elles ne génèrent pas de
message d’erreur. Une application peut contenir du code syntaxiquement correct, s’exécuter sans
effectuer d’opérations non valides et, pourtant, produire des résultats incorrects. Le code suivant
contient une erreur de logique amenée à générer une erreur d’exécution.
Di m x As Integer = 2
Do While x < 10
’ Instructions du code
x -= 1
Loop
Dans ce code, la boucle While s’exécute tant que la valeur x reste inférieure à 10. À
l’intérieur de la boucle, l’instruction x - = 1 contient une erreur de logique car la valeur de début de
x est 2 et est décrémentée de 1 à chaque exécution de la boucle. La condition x < 10 reste toujours
définie à True, créant ainsi une boucle infinie. Une erreur d’exécution survient lorsque la valeur x
dépasse la valeur qu’il est possible de stocker dans un Integer.
Le seul moyen de vérifier qu’une application fonctionne correctement est de la tester en d’en
analyser les résultats. Dans le cadre du processus de débogage, vous pouvez utiliser les outils de
débogage de Microsoft Visual Studio .NET pour identifier et résoudre les erreurs de logique
dissimulées dans votre code.
2. Utilisation du débogueur
Un point d’arrêt est un marqueur intégré à votre code qui permet à Visual Basic
d’interrompre l’exécution du code sur une ligne spécifique. Pour arrêter votre programme à un
emplacement de votre code, là où vous suspectez la présence d’un problème, définissez un point
d’arrêt à ce même emplacement.
Points d’arrêt
Une des procédures de débogage les plus courantes est l’analyse pas à pas du code ou
l’exécution du code une ligne à la fois. Le menu Déboguer est doté de trois commandes qui
permettent de parcourir le code pas à pas : Pas à pas détaillé, Pas à pas principal et Pas à pas sortant.
En outre, la commande Exécuter jusqu’au curseur vous permet d’exécuter votre application jusqu’à
ce que le débogueur atteigne le point d’insertion que vous avez défini.
Deux techniques sont disponibles pour le traitement des erreurs dans Visual Basic :
Les exceptions
La gestion en ligne
Une exception désigne une condition d’erreur ou un comportement inattendu survenant lors
de l’exécution d’un programme et exigeant l’exécution d’un code hors du flux de contrôle normal.
Plusieurs causes peuvent être à l’origine des exceptions : un défaut dans le code ou le code appelé,
des ressources du système d’exploitation indisponibles, des conditions inattendues dans le Common
Language Runtime, etc. Une exception est levée à partir de la zone de code où survient le problème.
.NET Framework fournit le modèle objet d’exception suivant :
Exception
SystemException
OutOfMemoryException
IOException
FileNotFoundException
ApplicationException
Le bloc Try comprend une expression susceptible de générer une exception(le code
dangereux). Il est constitué d’une ou plusieurs instructions Ca tc h associées permettant de filtrer les
exceptions et de les faire correspondre à une action particulière.
Si l’exception survient, le runtime interrompt la procédure d’exécution normale et part à la
recherche d’un bloc Ca tch capable d’intercepter l’exception en fonction de son type.
Syntaxe :
Le bloc Try d’un gestionnaire d’exceptions Try…Catch contient la section du code que vous
souhaitez gérer à l’aide de votre gestionnaire d’exceptions. Placez les sections du code susceptibles
de lever des exceptions dans un bloc Try, puis le code chargé de la gestion des exceptions dans un
bloc Catch.
Le code d’un bloc Try est toujours exécuté. Si une erreur survient lors de l’exécution d’un
code de la section Try, Visual Basic examine chaque instruction Catch dans le gestionnaire des
exceptions jusqu’à ce que le type de l’exception survenue corresponde au nom de l’exception
spécifiée dans l’instruction Catch, puis il transfère le contrôle de la première ligne du code vers
l’instruction Catch. Si aucun bloc Catch n’est trouvé, une erreur survient.
Le bloc Finally est un bloc de code facultatif qui, s’il est inclus, est toujours exécuté. Dans ce
bloc, vous pouvez définir les actions à entreprendre, indépendamment de l’apparition ou non d’une
exception. Ces actions peuvent inclure notamment la fermeture de fichiers ou la libération d’objets.
Le bloc Finally est le plus souvent employé pour éliminer des ressources utilisées dans votre code
lorsqu’une méthode échoue.
Exemple :
Try
Finally
End Try
End Sub
L’instruction On Error est l’élément de base de la gestion des erreurs en ligne. Lorsque ce cette
instruction est exécutée, dans une procédure ou fonc tion, elle ac tive la gestion des erreurs pour cette
procédure ou fonction.
On error resume next : l’exécution du code va se poursuivre par la ligne suivant c elle qui a
provoqué l’erreur.
On error goto etiquette : l’exécution du code va se poursuivre par la ligne repérée par
« Instructions dangereuses »
….
Exit sub
GestionErreurs :
End Sub
L’étiquette vers laquelle le gestionnaire d’erreurs va rediriger l’exécution doit se trouver dans la
même procédure que l’instruction on error goto. L’instruction exit sub est obligatoire pour que le
code de gestion d’erreur ne soit pas exécuté à la suite des instructions normales mais seulement en
cas d’erreur.
Le code du gestionnaire d’erreur doit déterminer la conduite à tenir en cas d’erreur. Trois solutions
sont possibles.
Resume : On essaie à nouveau la ligne qui a provoqué l’erreur.
Resume next : On continue l’exécution par la ligne suivant celle qui a provoqué l’erreur.
Exit s ub ou exit function : on abandonne l’exécution de cette procédure ou fonction.
Exit sub
GestionErreurs :
Di m reponse As String
Resume
Resume nex t
Exit sub
End Sub