SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
Microsoft Visual Basic .NET
 Découverte du nouvel environnement
Visual Studio .NET
 Eléments du langage Visual Basic .NET
 Etude et mise en œuvre des
fonctionnalités du nouveau Framework
.NET
 Programmation orientée objet et
développement de composants
réutilisables
 Accès aux données avec ADO .NET
Professeur: Hamza SAID
1
Etude et mise en œuvre des fonctionnalités
du nouveau Framework .NET
 Classes de base spécialisées dans
le traitement des valeurs numérique,
des chaînes de caractères et des
dates ainsi que leur formatage
 Classes dédiées aux opérations sur
les fichiers et les dossiers
 Débogage et Gestion des
exceptions
Professeur: Hamza SAID
2
1. Introduction au débogage
2. Travailler en mode Break
3. Les fenêtres de débogage
4. La notion d'exception
Débogage et Gestion des exceptions3
Professeur: Hamza SAID
Etude et mise en œuvre des fonctionnalités
du nouveau Framework .NET
• Visual Studio .NET offre plusieurs outils de
débogage qui permettent d'observer et de vérifier
le comportement d’une l'application.
• Il existe 3 types d’erreur:
1. Les erreurs de syntaxe.
2. Les erreurs d'exécution.
3. Les erreurs de logique.
Introduction au débogage4
Professeur: Hamza SAID
Débogage et Gestion des exceptions
Les erreurs de syntaxe
• Sont détectées automatiquement
• par l'éditeur de Visual Studio.
• ou lors de la génération du projet en mode Run.
• Sont liées aux types des données, paramètres....
Introduction au débogage5
Professeur: Hamza SAID
Débogage et Gestion des exceptions
Les erreurs d'exécution
• Surviennent lorsque l'exécution d'une instruction échoue
• Ex.: tentative d'ouverture d'un fichier qui n'existe pas
• Provoque l'apparition d'un message et l'arrêt brutal de
l'application.
• Il faut prévoir une gestion des erreurs d'exécution afin
d'éviter l'arrêt de l'application.
• À l'aide de l’instruction « Try Catch », on pourra intercepter l'erreur et informer
l'utilisateur.
Introduction au débogage6
Professeur: Hamza SAID
Débogage et Gestion des exceptions
Les erreurs de logique
• Sont plus difficiles à détecter.
• Le code est syntaxiquement correct, mais il ne
réalise pas les opérations prévues.
• C'est là qu'intervient le débogage afin de
diagnostiquer l'origine de l'erreur.
Introduction au débogage7
Professeur: Hamza SAID
Débogage et Gestion des exceptions
Pour déboguer, il faut lancer l'exécution du programme,
puis:
• Suspendre l'exécution à certains endroits du code
• Voir ce qui se passe puis faire avancer le programme pas à pas.
• Afficher des informations de débogage quand le programme tourne.
Introduction au débogage8
Professeur: Hamza SAID
Débogage et Gestion des exceptions
Le passage en mode break se fait en appuyant sur le bouton
« Interrompre tout » ou en créant un point d’arrêt.
On va voir:
1. Comment définir un point d'Arrêt
2. L'instruction « Stop »
3. Les outils de débogage
Travailler en mode « Break »9
Professeur: Hamza SAID
Débogage et Gestion des exceptions
• Pour définir un point d'arrêt en mode « Design », il suffit de cliquer dans la bande grise située dans la partie
gauche de la fenêtre de code, devant la ligne de l'instruction voulue.
• La ligne d'un point d'arrêt est affichée en marron est précédée d'un point de la même couleur
• Un point d'Arrêt se retire de la même manière qu'il se définit (cliquez sur le point marron situé en début de ligne)
• Les points d'arrêt ne sont pas pris en compte lors de la génération de l'application finale
Comment définir un point d'Arrêt10
Professeur: Hamza SAID
Travailler en mode « Break »
Comment définir un point d'Arrêt11
Professeur: Hamza SAID
Démonstration
• L'instruction « Stop » permet aussi d'interrompre l'application
• Exemple:
L'instruction « Stop »12
Professeur: Hamza SAID
Travailler en mode « Break »
Dim Multiplication(10, 10) As Integer
Dim i, j As Integer
For i = 1 To 10
For j = 1 To 10
'S'arrêter lorsqu'on calcul un multiple de 5
If i = 5 Or j = 5 Then Stop
Multiplication(i, j) = i * j
Next
Next
• Attention :
• Cette instruction est prise en compte après compilation.
• Il faut la supprimer avant de générer l'application finale.
• Ou utiliser une constante nommée « DEBUG » qui aura la valeur « True » si on
est en mode « Debug ».
L'instruction « Stop »13
Professeur: Hamza SAID
Travailler en mode « Break »
#If DEBUG Then
Stop
#End If
Ici « Stop » se produira uniquement si on est en mode « Debug ».
En mode « Run », il n'y aura pas d'arrêt.
• Accessible soit par le menu « Déboguer » soit par la barre d'outils
« Standard »
• Ils offrent les fonctionnalités suivantes:
Les outils de débogage14
Professeur: Hamza SAID
Travailler en mode « Break »
Les outils de débogage15
Professeur: Hamza SAID
Travailler en mode « Break »
Bouton Description
Lancer/Continuer Lance ou redémarre l'exécution de l'application en mode Run
Interrompre tout Passe du mode Run au mode Break
Arrêter le débogage Retour au mode Design
Pas à pas détaillé Exécute l'instruction suivante. Si l'instruction comporte un appel de procédure, l'exécution se poursuit en mode
Break dans la procédure appelée.
Pas à pas principal Se comporte comme l'outil "Pas à pas détaillé" tant qu'aucun appel de procédure n'est rencontré. Si
l'instruction comporte un appel de procédure, cette dernière sera exécutée normalement comme s'il s'agissait
d'une seule instruction. L'exécution se poursuit en mode break.
Pas à pas sortant Relance l'exécution du code jusqu'à la fin de la procédure en cours. L'exécution se poursuit en mode break
dans la procédure appelante.
Les outils de débogage16
Professeur: Hamza SAID
Démonstration
• Nous permettent de suivre le comportement ainsi que
vérifier le contexte d’exécution des applications
• Ils sont accessibles à partir de la barre d'outils
« Débogage »
Les fenêtres de débogage17
Professeur: Hamza SAID
Débogage et Gestion des exceptions
• Raccourcis CTRL + ALT + B
• Utilisée pour:
• ajouter et modifier les propriétés des points d'arrêts (condition du point
d'arrêt ou nombre de passages) grâce au menu contextuel
• Désactiver/réactiver des points d'arrêt
La fenêtre « Points d'arrêt »18
Professeur: Hamza SAID
Les fenêtres de débogage
La fenêtre « Points d'arrêt »19
Professeur: Hamza SAID
Démonstration
• Raccourcis CTRL + ALT + V, A
• Affiche les variables utilisées dans l'instruction en
cours.
La fenêtre « Automatique »20
Professeur: Hamza SAID
Les fenêtres de débogage
La fenêtre « Automatique »21
Professeur: Hamza SAID
Démonstration
• Raccourcis CTRL + ALT + V, L
• Affiche le contexte d'exécution (l'ensemble des
variables locales, arguments et objets) de la
procédure en cours.
La fenêtre « Variables locales »22
Professeur: Hamza SAID
Les fenêtres de débogage
La fenêtre « Variables locales »23
Professeur: Hamza SAID
Démonstration
• Raccourcis CTRL + G
• Autorise l'exécution d'une instruction saisie
manuellement ou l'évaluation de toute expression
valide saisie à la suite d'un point d'interrogation
La fenêtre « Immédiat »24
Professeur: Hamza SAID
Les fenêtres de débogage
La fenêtre « Immédiat »25
Professeur: Hamza SAID
Démonstration
• Permet d'afficher en permanence l'évolution d'une
expression particulière en la définissant en tant qu'espion
• L'ajout des espions se fait grâce au menu "DéboguerEspion
Express...". La fenêtre Espion s'ouvre par la suite
automatiquement.
La fenêtre « Espion »26
Professeur: Hamza SAID
Les fenêtres de débogage
La fenêtre « Espion »27
Professeur: Hamza SAID
Démonstration
• Pour gérer les erreurs dans les versions précédentes de Visual Basic
utilisaient les instructions:
• « On Error Resume Next »
• et « On Error Goto ».
• L'usage du « Goto » est assimilé à une programmation non structurée
• Entraîne des Bugs de logique
• C++ et Java... disposaient depuis toujours d'une approche structurée
basée sur les instructions « Try Catch » et « Finally »
La notion d'exception28
Professeur: Hamza SAID
Débogage et Gestion des exceptions
• Les instructions « Try Catch » et « Finally » existent maintenant dans Visual
Basic .NET
• La nouvelle terminologie pour la gestion des erreurs dans Visual Basic
.NET et la gestion des exceptions
• Puisqu'une erreur d'exécution se traduit par le fait que le Framework « lève une exception ».
La notion d'exception29
Professeur: Hamza SAID
Débogage et Gestion des exceptions
Quand une exception est levée, en absence de gestionnaire d'exception dans
une procédure,
• elle est automatiquement retransmise à la prochaine procédure
appelante dans la pile des appels.
• Si cette procédure possède un gestionnaire, l'exception est alors traitée.
• Sinon, elle est de nouveau retransmise à la procédure appelante jusqu'à ce qu'un gestionnaire soit
rencontré.
• Si aucun gestionnaire n'a pu intercepter l'exception ainsi levée,
l'application se terminera brutalement en affichant le message descriptif
de l'exception.
Transmission des exceptions30
Professeur: Hamza SAID
La notion d'exception
Soit l'exemple suivant:
L'nstruction « Try Catch »31
Professeur: Hamza SAID
La notion d'exception
Dim sr As New StreamReader("C:tempmonfichier.txt")
Do Until sr.Peek = -1
Debug.WriteLine(sr.Read)
Loop
sr.Close()
Si le fichier "C:tempmonfichier.txt" est occupé ou n'existe
pas, une exception sera levée (Affichage d'un message
d'erreur et arrêt brutal de l'application).
Lorsqu'une instruction (ou bloc d'instructions) est susceptible
de lever une exception, elle doit être prise en charge dans
un bloc Try Catch End Try.
L'nstruction « Try Catch »32
Professeur: Hamza SAID
La notion d'exception
Dim sr As StreamReader
Try
sr = New StreamReader("C:tempmonfichier.txt")
Do Until sr.Peek = -1
Debug.WriteLine(sr.Read)
Loop
sr.Close()
Catch ex As Exception
MsgBox("L'opération a échoué")
End Try
Maintenant, un message sera
affiché au lieu de l'arrêt brutal
de l'application
Codeà
gérer
Codeà
exécuter
aprèsla
détection
d’uneerreur
• Les exceptions sont des objets dérivés de la classe « System.Exception »
• Principaux membres de cette classe:
La classe « Exception »33
Professeur: Hamza SAID
La notion d'exception
Membre Description
Propriétés
HelpLink Lien vers le fichier d'aide associé à l'exception.
InnerException Instance de l'objet exceptions qui a provoqué l'exception
Message Message descriptif de l'exception
Source Nom de l'application ou de l'objet qui est à l'origine de l'erreur
StackTrace
Représentation sous forme de chaînes de la pile des appels au moment où
l'exception en cours a été levée.
TargetSite Méthode qui a levé l'exception
Méthodes
GetBaseException En cas de substitution dans une classe dérivée, retourne l'objet Exception de base.
• Dans l'exemple précédent, voici comment afficher la description de
l'exception avec la propriété 'Message'.
La classe « Exception »34
Professeur: Hamza SAID
La notion d'exception
Dim sr As StreamReader
Try
sr = New StreamReader("C:tempmonfichier.txt")
Do Until sr.Peek = -1
Debug.WriteLine(sr.Read)
Loop
sr.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
• La classe « Exception » est, en réalité, une classe de base
pour les différents types d'exception levée par le
Framework
• « StackOverFlowException » et
« FileNotFoundException » sont un exemple d'exception
dérivée de la classe « Exception »
• Ces classes filles sont réparties parmi les différents
espaces de nom du Framework.
• l'exception « DivideByZeroException » par exemple, est levée par la classe
principale « System »
• l'exception « DirectoryNotFoundException » est levée par la classe « System.IO »
Les classes d'exceptions dérivées35
La notion d'exception
Professeur: Hamza SAID
• On peut affiner les gestionnaires d'exception en alignant successivement
plusieurs instructions « Catch ». Chacune d'elles chargée de capturer et
de traiter un type d'exception spécifique.
Les classes d'exceptions dérivées36
La notion d'exception
Dim sr As StreamReader
Try
sr = New StreamReader("C:tempmonfichier.txt")
Do Until sr.Peek = -1
Debug.WriteLine(sr.Read)
Loop
sr.Close()
Catch ex As DirectoryNotFoundException
MsgBox("Dossier invalide")
Catch ex As FileNotFoundException
MsgBox("Ouverture du fichier impossible")
Catch ex As Exception
MsgBox(ex.Message)
End Try
Professeur: Hamza SAID
Cas où le répertoire
n’existe pas
Cas où le fichier
n’existe pas
Le reste des erreurs
• Un traitement peut avoir consommé
des ressources qui doivent être
libérées
• les instructions chargées d'effectuer
les opérations de libération devront
prendre place à la suite du mot
réservé « Finally »
• le bloc « Finally » est toujours
exécuté que le traitement se termine
normalement ou en levant une
exception
L'instruction « Finally »37
Professeur: Hamza SAID
La notion d'exception
Dim sr As StreamReader = Nothing
Try
sr = New StreamReader("C:tempmonfichier.txt")
Do Until sr.Peek = -1
Debug.WriteLine(sr.Read)
Loop
Catch ex As DirectoryNotFoundException
MsgBox("Dossier invalide")
Catch ex As FileNotFoundException
MsgBox("Ouverture du fichier impossible")
Catch ex As Exception
MsgBox(ex.Message)
Finally
If sr IsNot Nothing Then
sr.Close()
End If
MsgBox("Fin du traitement")
End Try
• Il permet la transmission d'une exception à la procédure
appelante dans le cas d'une chaîne d'appels
Le mot clé « Throw »38
Professeur: Hamza SAID
La notion d'exception
Dim sr As StreamReader
Try
sr = New StreamReader("C:tempmonfichier.txt")
Do Until sr.Peek = -1
Debug.WriteLine(sr.Read)
Loop
sr.Close()
Catch ex As Exception
Throw
End Try
• Elle permet aussi la personnalisation du message d'exception.
Le mot clé « Throw »39
Professeur: Hamza SAID
La notion d'exception
Dim sr As StreamReader
Try
sr = New StreamReader("C:tempmonfichier.txt")
Do Until sr.Peek = -1
Debug.WriteLine(sr.Read)
Loop
sr.Close()
Catch ex As Exception
Throw New Exception("L'opération a échoué")
End Try
• La personnalisation du message associé à une exception ne permet
plus de connaître la véritable cause de sa levée.
• Mais, on peut retransmettre l'objet « Exception » original à la
procédure appelante.
Le mot clé « Throw »40
Professeur: Hamza SAID
La notion d'exception
Dim sr As StreamReader
Try
sr = New StreamReader("C:tempmonfichier.txt")
Do Until sr.Peek = -1
Debug.WriteLine(sr.Read)
Loop
sr.Close()
Catch ex As Exception
Throw New Exception("L'opération a échoué", ex)
End Try
• La personnalisation du message associé à une exception ne permet
plus de connaître la véritable cause de sa levée.
• Mais, on peut retransmettre l'objet « Exception » original à la
procédure appelante.
Le mot clé « Throw »41
Professeur: Hamza SAID
La notion d'exception
Dim sr As StreamReader
Try
sr = New StreamReader("C:tempmonfichier.txt")
Do Until sr.Peek = -1
Debug.WriteLine(sr.Read)
Loop
sr.Close()
Catch ex As Exception
Throw New Exception("L'opération a échoué", ex)
End Try
Dans ce cas, la propriété
« InnerException » de la
classe « Exception »
fournit une référence en
lecture seule à l'exception
sous-jacente.
On a vu :
• Comment travailler en mode break
• Comment utiliser les points d'arrêt et l'instruction « Stop »
• Les outils de débogage
• Les fenêtres de débogage (Points d'arrêt, Automatique,
Variables locales, Immédiat et Espion)
• Comment gérer les exceptions grâce au bloc « Try
Catch »
En bref42
Professeur: Hamza SAID
Débogage et Gestion des exceptions

Contenu connexe

Tendances

UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
Mansouri Khalifa
 
Plateforme d’e learning
Plateforme d’e learningPlateforme d’e learning
Plateforme d’e learning
El Aber Haythem
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
Algeria JUG
 
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)
Ghali Rahma
 

Tendances (20)

Méthodes agiles: Scrum et XP
Méthodes agiles: Scrum et XPMéthodes agiles: Scrum et XP
Méthodes agiles: Scrum et XP
 
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignement
 
Rapport pfe 2017 Système de gestion des rendez-vous médicaux
Rapport pfe 2017 Système de gestion des rendez-vous médicaux Rapport pfe 2017 Système de gestion des rendez-vous médicaux
Rapport pfe 2017 Système de gestion des rendez-vous médicaux
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
 
Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
Modele mvc
Modele mvcModele mvc
Modele mvc
 
pfe book 2023 2024.pdf
pfe book 2023 2024.pdfpfe book 2023 2024.pdf
pfe book 2023 2024.pdf
 
Rapport de stage Application web Gestion RH ASP.NET MVC5
Rapport de stage Application web Gestion RH ASP.NET MVC5Rapport de stage Application web Gestion RH ASP.NET MVC5
Rapport de stage Application web Gestion RH ASP.NET MVC5
 
Inventaires dans odoo
Inventaires dans odooInventaires dans odoo
Inventaires dans odoo
 
Chap2fonctionscpp
Chap2fonctionscppChap2fonctionscpp
Chap2fonctionscpp
 
Presentation pfe Système de gestion des rendez-vous médicaux
Presentation pfe Système de gestion des rendez-vous médicauxPresentation pfe Système de gestion des rendez-vous médicaux
Presentation pfe Système de gestion des rendez-vous médicaux
 
Systèmes d'Exploitation - chp6-synchronisation
Systèmes d'Exploitation - chp6-synchronisationSystèmes d'Exploitation - chp6-synchronisation
Systèmes d'Exploitation - chp6-synchronisation
 
Plateforme d’e learning
Plateforme d’e learningPlateforme d’e learning
Plateforme d’e learning
 
Programmation orientée objet avancée
Programmation orientée objet avancéeProgrammation orientée objet avancée
Programmation orientée objet avancée
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
 
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)
 
Exercice 2 java Héritage
Exercice 2  java HéritageExercice 2  java Héritage
Exercice 2 java Héritage
 
Rapport mini-projet Gestion Commerciale D’un Supermarché
Rapport mini-projet  Gestion Commerciale D’un SupermarchéRapport mini-projet  Gestion Commerciale D’un Supermarché
Rapport mini-projet Gestion Commerciale D’un Supermarché
 

Similaire à 08 visual basic .net - debogage et gestion des exceptions

Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
cyrilgandon
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
French Scrum User Group
 

Similaire à 08 visual basic .net - debogage et gestion des exceptions (20)

05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
 
4 asynch task_services_thread
4 asynch task_services_thread4 asynch task_services_thread
4 asynch task_services_thread
 
Test Driven Development (aka TDD) for agile teams
Test Driven Development (aka TDD) for agile teamsTest Driven Development (aka TDD) for agile teams
Test Driven Development (aka TDD) for agile teams
 
Formation VBA Excel
Formation VBA ExcelFormation VBA Excel
Formation VBA Excel
 
Tour d'horizon des tests
Tour d'horizon des testsTour d'horizon des tests
Tour d'horizon des tests
 
Flex Unit Testing
Flex Unit TestingFlex Unit Testing
Flex Unit Testing
 
Valider par des tests - Blend
Valider par des tests - BlendValider par des tests - Blend
Valider par des tests - Blend
 
Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et Industrialisation
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?
 
Ch11
Ch11Ch11
Ch11
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
 
sfPot aop
sfPot aopsfPot aop
sfPot aop
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
 
Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014
 
AgileTour Strasbourg 2011 BDD with jBehave
AgileTour Strasbourg 2011 BDD with jBehaveAgileTour Strasbourg 2011 BDD with jBehave
AgileTour Strasbourg 2011 BDD with jBehave
 
Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0
 

Plus de Hamza SAID

Plus de Hamza SAID (17)

11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net
 
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
 
09 visual basic .net - exercice - liste chainee
09 visual basic .net - exercice - liste chainee09 visual basic .net - exercice - liste chainee
09 visual basic .net - exercice - liste chainee
 
09 visual basic .net - exercice - heritage et interfaces - primes de risque
09 visual basic .net - exercice - heritage et interfaces - primes de risque09 visual basic .net - exercice - heritage et interfaces - primes de risque
09 visual basic .net - exercice - heritage et interfaces - primes de risque
 
09 visual basic .net - exercice - geometrie
09 visual basic .net - exercice - geometrie09 visual basic .net - exercice - geometrie
09 visual basic .net - exercice - geometrie
 
07 visual basic .net - exercice - le programme quick note
07 visual basic .net - exercice - le programme quick note07 visual basic .net - exercice - le programme quick note
07 visual basic .net - exercice - le programme quick note
 
07 visual basic .net - exercice - le programme anniversaire
07 visual basic .net - exercice - le programme anniversaire07 visual basic .net - exercice - le programme anniversaire
07 visual basic .net - exercice - le programme anniversaire
 
07 visual basic .net - etude et mise en oeuvre des fonctionnalites du nouveau...
07 visual basic .net - etude et mise en oeuvre des fonctionnalites du nouveau...07 visual basic .net - etude et mise en oeuvre des fonctionnalites du nouveau...
07 visual basic .net - etude et mise en oeuvre des fonctionnalites du nouveau...
 
06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...
 
06 visual basic .net - exercice sur les tableaux
06 visual basic .net - exercice sur les tableaux06 visual basic .net - exercice sur les tableaux
06 visual basic .net - exercice sur les tableaux
 
06 visual basic .net - exercice sur les collections
06 visual basic .net - exercice sur les collections06 visual basic .net - exercice sur les collections
06 visual basic .net - exercice sur les collections
 
05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...
 
04 visual basic .net - les controles standard - exercice
04 visual basic .net - les controles standard - exercice04 visual basic .net - les controles standard - exercice
04 visual basic .net - les controles standard - exercice
 
04 visual basic .net - exploitation des nouveaux controles windows forms et r...
04 visual basic .net - exploitation des nouveaux controles windows forms et r...04 visual basic .net - exploitation des nouveaux controles windows forms et r...
04 visual basic .net - exploitation des nouveaux controles windows forms et r...
 
03 visual basic .net - notions de base
03 visual basic .net - notions de base03 visual basic .net - notions de base
03 visual basic .net - notions de base
 
02 visual basic .net - introduction a vb .net
02 visual basic .net - introduction a vb .net02 visual basic .net - introduction a vb .net
02 visual basic .net - introduction a vb .net
 
01 visual basic .net - presentation du cours
01 visual basic .net - presentation du cours01 visual basic .net - presentation du cours
01 visual basic .net - presentation du cours
 

Dernier

Dernier (13)

Un petit coin etwinning- Au fil des cultures urbaines
Un petit coin  etwinning- Au fil des cultures urbainesUn petit coin  etwinning- Au fil des cultures urbaines
Un petit coin etwinning- Au fil des cultures urbaines
 
complement de agri cours irrigation.pptx
complement de agri cours irrigation.pptxcomplement de agri cours irrigation.pptx
complement de agri cours irrigation.pptx
 
Nathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre françaiseNathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre française
 
Àma Gloria.pptx Un film tourné au Cap Vert et en France
Àma Gloria.pptx   Un film tourné au Cap Vert et en FranceÀma Gloria.pptx   Un film tourné au Cap Vert et en France
Àma Gloria.pptx Un film tourné au Cap Vert et en France
 
Saint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptx
Saint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptxSaint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptx
Saint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptx
 
CALENDRIER ET COMPTE RENDU REUNION DIRECTION
CALENDRIER ET COMPTE RENDU REUNION DIRECTIONCALENDRIER ET COMPTE RENDU REUNION DIRECTION
CALENDRIER ET COMPTE RENDU REUNION DIRECTION
 
Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"
 
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptxGHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
 
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptxGHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
 
Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024
 
Fiche de vocabulaire pour faire une appréciation
Fiche de vocabulaire pour faire une appréciationFiche de vocabulaire pour faire une appréciation
Fiche de vocabulaire pour faire une appréciation
 
Chapitre3-Classififcation des structures de chaussu00E9e.pptx
Chapitre3-Classififcation des structures de  chaussu00E9e.pptxChapitre3-Classififcation des structures de  chaussu00E9e.pptx
Chapitre3-Classififcation des structures de chaussu00E9e.pptx
 
Texte avec différentes critiques positives, négatives ou mitigées
Texte avec différentes critiques positives, négatives ou mitigéesTexte avec différentes critiques positives, négatives ou mitigées
Texte avec différentes critiques positives, négatives ou mitigées
 

08 visual basic .net - debogage et gestion des exceptions

  • 1. Microsoft Visual Basic .NET  Découverte du nouvel environnement Visual Studio .NET  Eléments du langage Visual Basic .NET  Etude et mise en œuvre des fonctionnalités du nouveau Framework .NET  Programmation orientée objet et développement de composants réutilisables  Accès aux données avec ADO .NET Professeur: Hamza SAID 1
  • 2. Etude et mise en œuvre des fonctionnalités du nouveau Framework .NET  Classes de base spécialisées dans le traitement des valeurs numérique, des chaînes de caractères et des dates ainsi que leur formatage  Classes dédiées aux opérations sur les fichiers et les dossiers  Débogage et Gestion des exceptions Professeur: Hamza SAID 2
  • 3. 1. Introduction au débogage 2. Travailler en mode Break 3. Les fenêtres de débogage 4. La notion d'exception Débogage et Gestion des exceptions3 Professeur: Hamza SAID Etude et mise en œuvre des fonctionnalités du nouveau Framework .NET
  • 4. • Visual Studio .NET offre plusieurs outils de débogage qui permettent d'observer et de vérifier le comportement d’une l'application. • Il existe 3 types d’erreur: 1. Les erreurs de syntaxe. 2. Les erreurs d'exécution. 3. Les erreurs de logique. Introduction au débogage4 Professeur: Hamza SAID Débogage et Gestion des exceptions
  • 5. Les erreurs de syntaxe • Sont détectées automatiquement • par l'éditeur de Visual Studio. • ou lors de la génération du projet en mode Run. • Sont liées aux types des données, paramètres.... Introduction au débogage5 Professeur: Hamza SAID Débogage et Gestion des exceptions
  • 6. Les erreurs d'exécution • Surviennent lorsque l'exécution d'une instruction échoue • Ex.: tentative d'ouverture d'un fichier qui n'existe pas • Provoque l'apparition d'un message et l'arrêt brutal de l'application. • Il faut prévoir une gestion des erreurs d'exécution afin d'éviter l'arrêt de l'application. • À l'aide de l’instruction « Try Catch », on pourra intercepter l'erreur et informer l'utilisateur. Introduction au débogage6 Professeur: Hamza SAID Débogage et Gestion des exceptions
  • 7. Les erreurs de logique • Sont plus difficiles à détecter. • Le code est syntaxiquement correct, mais il ne réalise pas les opérations prévues. • C'est là qu'intervient le débogage afin de diagnostiquer l'origine de l'erreur. Introduction au débogage7 Professeur: Hamza SAID Débogage et Gestion des exceptions
  • 8. Pour déboguer, il faut lancer l'exécution du programme, puis: • Suspendre l'exécution à certains endroits du code • Voir ce qui se passe puis faire avancer le programme pas à pas. • Afficher des informations de débogage quand le programme tourne. Introduction au débogage8 Professeur: Hamza SAID Débogage et Gestion des exceptions
  • 9. Le passage en mode break se fait en appuyant sur le bouton « Interrompre tout » ou en créant un point d’arrêt. On va voir: 1. Comment définir un point d'Arrêt 2. L'instruction « Stop » 3. Les outils de débogage Travailler en mode « Break »9 Professeur: Hamza SAID Débogage et Gestion des exceptions
  • 10. • Pour définir un point d'arrêt en mode « Design », il suffit de cliquer dans la bande grise située dans la partie gauche de la fenêtre de code, devant la ligne de l'instruction voulue. • La ligne d'un point d'arrêt est affichée en marron est précédée d'un point de la même couleur • Un point d'Arrêt se retire de la même manière qu'il se définit (cliquez sur le point marron situé en début de ligne) • Les points d'arrêt ne sont pas pris en compte lors de la génération de l'application finale Comment définir un point d'Arrêt10 Professeur: Hamza SAID Travailler en mode « Break »
  • 11. Comment définir un point d'Arrêt11 Professeur: Hamza SAID Démonstration
  • 12. • L'instruction « Stop » permet aussi d'interrompre l'application • Exemple: L'instruction « Stop »12 Professeur: Hamza SAID Travailler en mode « Break » Dim Multiplication(10, 10) As Integer Dim i, j As Integer For i = 1 To 10 For j = 1 To 10 'S'arrêter lorsqu'on calcul un multiple de 5 If i = 5 Or j = 5 Then Stop Multiplication(i, j) = i * j Next Next
  • 13. • Attention : • Cette instruction est prise en compte après compilation. • Il faut la supprimer avant de générer l'application finale. • Ou utiliser une constante nommée « DEBUG » qui aura la valeur « True » si on est en mode « Debug ». L'instruction « Stop »13 Professeur: Hamza SAID Travailler en mode « Break » #If DEBUG Then Stop #End If Ici « Stop » se produira uniquement si on est en mode « Debug ». En mode « Run », il n'y aura pas d'arrêt.
  • 14. • Accessible soit par le menu « Déboguer » soit par la barre d'outils « Standard » • Ils offrent les fonctionnalités suivantes: Les outils de débogage14 Professeur: Hamza SAID Travailler en mode « Break »
  • 15. Les outils de débogage15 Professeur: Hamza SAID Travailler en mode « Break » Bouton Description Lancer/Continuer Lance ou redémarre l'exécution de l'application en mode Run Interrompre tout Passe du mode Run au mode Break Arrêter le débogage Retour au mode Design Pas à pas détaillé Exécute l'instruction suivante. Si l'instruction comporte un appel de procédure, l'exécution se poursuit en mode Break dans la procédure appelée. Pas à pas principal Se comporte comme l'outil "Pas à pas détaillé" tant qu'aucun appel de procédure n'est rencontré. Si l'instruction comporte un appel de procédure, cette dernière sera exécutée normalement comme s'il s'agissait d'une seule instruction. L'exécution se poursuit en mode break. Pas à pas sortant Relance l'exécution du code jusqu'à la fin de la procédure en cours. L'exécution se poursuit en mode break dans la procédure appelante.
  • 16. Les outils de débogage16 Professeur: Hamza SAID Démonstration
  • 17. • Nous permettent de suivre le comportement ainsi que vérifier le contexte d’exécution des applications • Ils sont accessibles à partir de la barre d'outils « Débogage » Les fenêtres de débogage17 Professeur: Hamza SAID Débogage et Gestion des exceptions
  • 18. • Raccourcis CTRL + ALT + B • Utilisée pour: • ajouter et modifier les propriétés des points d'arrêts (condition du point d'arrêt ou nombre de passages) grâce au menu contextuel • Désactiver/réactiver des points d'arrêt La fenêtre « Points d'arrêt »18 Professeur: Hamza SAID Les fenêtres de débogage
  • 19. La fenêtre « Points d'arrêt »19 Professeur: Hamza SAID Démonstration
  • 20. • Raccourcis CTRL + ALT + V, A • Affiche les variables utilisées dans l'instruction en cours. La fenêtre « Automatique »20 Professeur: Hamza SAID Les fenêtres de débogage
  • 21. La fenêtre « Automatique »21 Professeur: Hamza SAID Démonstration
  • 22. • Raccourcis CTRL + ALT + V, L • Affiche le contexte d'exécution (l'ensemble des variables locales, arguments et objets) de la procédure en cours. La fenêtre « Variables locales »22 Professeur: Hamza SAID Les fenêtres de débogage
  • 23. La fenêtre « Variables locales »23 Professeur: Hamza SAID Démonstration
  • 24. • Raccourcis CTRL + G • Autorise l'exécution d'une instruction saisie manuellement ou l'évaluation de toute expression valide saisie à la suite d'un point d'interrogation La fenêtre « Immédiat »24 Professeur: Hamza SAID Les fenêtres de débogage
  • 25. La fenêtre « Immédiat »25 Professeur: Hamza SAID Démonstration
  • 26. • Permet d'afficher en permanence l'évolution d'une expression particulière en la définissant en tant qu'espion • L'ajout des espions se fait grâce au menu "DéboguerEspion Express...". La fenêtre Espion s'ouvre par la suite automatiquement. La fenêtre « Espion »26 Professeur: Hamza SAID Les fenêtres de débogage
  • 27. La fenêtre « Espion »27 Professeur: Hamza SAID Démonstration
  • 28. • Pour gérer les erreurs dans les versions précédentes de Visual Basic utilisaient les instructions: • « On Error Resume Next » • et « On Error Goto ». • L'usage du « Goto » est assimilé à une programmation non structurée • Entraîne des Bugs de logique • C++ et Java... disposaient depuis toujours d'une approche structurée basée sur les instructions « Try Catch » et « Finally » La notion d'exception28 Professeur: Hamza SAID Débogage et Gestion des exceptions
  • 29. • Les instructions « Try Catch » et « Finally » existent maintenant dans Visual Basic .NET • La nouvelle terminologie pour la gestion des erreurs dans Visual Basic .NET et la gestion des exceptions • Puisqu'une erreur d'exécution se traduit par le fait que le Framework « lève une exception ». La notion d'exception29 Professeur: Hamza SAID Débogage et Gestion des exceptions
  • 30. Quand une exception est levée, en absence de gestionnaire d'exception dans une procédure, • elle est automatiquement retransmise à la prochaine procédure appelante dans la pile des appels. • Si cette procédure possède un gestionnaire, l'exception est alors traitée. • Sinon, elle est de nouveau retransmise à la procédure appelante jusqu'à ce qu'un gestionnaire soit rencontré. • Si aucun gestionnaire n'a pu intercepter l'exception ainsi levée, l'application se terminera brutalement en affichant le message descriptif de l'exception. Transmission des exceptions30 Professeur: Hamza SAID La notion d'exception
  • 31. Soit l'exemple suivant: L'nstruction « Try Catch »31 Professeur: Hamza SAID La notion d'exception Dim sr As New StreamReader("C:tempmonfichier.txt") Do Until sr.Peek = -1 Debug.WriteLine(sr.Read) Loop sr.Close() Si le fichier "C:tempmonfichier.txt" est occupé ou n'existe pas, une exception sera levée (Affichage d'un message d'erreur et arrêt brutal de l'application).
  • 32. Lorsqu'une instruction (ou bloc d'instructions) est susceptible de lever une exception, elle doit être prise en charge dans un bloc Try Catch End Try. L'nstruction « Try Catch »32 Professeur: Hamza SAID La notion d'exception Dim sr As StreamReader Try sr = New StreamReader("C:tempmonfichier.txt") Do Until sr.Peek = -1 Debug.WriteLine(sr.Read) Loop sr.Close() Catch ex As Exception MsgBox("L'opération a échoué") End Try Maintenant, un message sera affiché au lieu de l'arrêt brutal de l'application Codeà gérer Codeà exécuter aprèsla détection d’uneerreur
  • 33. • Les exceptions sont des objets dérivés de la classe « System.Exception » • Principaux membres de cette classe: La classe « Exception »33 Professeur: Hamza SAID La notion d'exception Membre Description Propriétés HelpLink Lien vers le fichier d'aide associé à l'exception. InnerException Instance de l'objet exceptions qui a provoqué l'exception Message Message descriptif de l'exception Source Nom de l'application ou de l'objet qui est à l'origine de l'erreur StackTrace Représentation sous forme de chaînes de la pile des appels au moment où l'exception en cours a été levée. TargetSite Méthode qui a levé l'exception Méthodes GetBaseException En cas de substitution dans une classe dérivée, retourne l'objet Exception de base.
  • 34. • Dans l'exemple précédent, voici comment afficher la description de l'exception avec la propriété 'Message'. La classe « Exception »34 Professeur: Hamza SAID La notion d'exception Dim sr As StreamReader Try sr = New StreamReader("C:tempmonfichier.txt") Do Until sr.Peek = -1 Debug.WriteLine(sr.Read) Loop sr.Close() Catch ex As Exception MsgBox(ex.Message) End Try
  • 35. • La classe « Exception » est, en réalité, une classe de base pour les différents types d'exception levée par le Framework • « StackOverFlowException » et « FileNotFoundException » sont un exemple d'exception dérivée de la classe « Exception » • Ces classes filles sont réparties parmi les différents espaces de nom du Framework. • l'exception « DivideByZeroException » par exemple, est levée par la classe principale « System » • l'exception « DirectoryNotFoundException » est levée par la classe « System.IO » Les classes d'exceptions dérivées35 La notion d'exception Professeur: Hamza SAID
  • 36. • On peut affiner les gestionnaires d'exception en alignant successivement plusieurs instructions « Catch ». Chacune d'elles chargée de capturer et de traiter un type d'exception spécifique. Les classes d'exceptions dérivées36 La notion d'exception Dim sr As StreamReader Try sr = New StreamReader("C:tempmonfichier.txt") Do Until sr.Peek = -1 Debug.WriteLine(sr.Read) Loop sr.Close() Catch ex As DirectoryNotFoundException MsgBox("Dossier invalide") Catch ex As FileNotFoundException MsgBox("Ouverture du fichier impossible") Catch ex As Exception MsgBox(ex.Message) End Try Professeur: Hamza SAID Cas où le répertoire n’existe pas Cas où le fichier n’existe pas Le reste des erreurs
  • 37. • Un traitement peut avoir consommé des ressources qui doivent être libérées • les instructions chargées d'effectuer les opérations de libération devront prendre place à la suite du mot réservé « Finally » • le bloc « Finally » est toujours exécuté que le traitement se termine normalement ou en levant une exception L'instruction « Finally »37 Professeur: Hamza SAID La notion d'exception Dim sr As StreamReader = Nothing Try sr = New StreamReader("C:tempmonfichier.txt") Do Until sr.Peek = -1 Debug.WriteLine(sr.Read) Loop Catch ex As DirectoryNotFoundException MsgBox("Dossier invalide") Catch ex As FileNotFoundException MsgBox("Ouverture du fichier impossible") Catch ex As Exception MsgBox(ex.Message) Finally If sr IsNot Nothing Then sr.Close() End If MsgBox("Fin du traitement") End Try
  • 38. • Il permet la transmission d'une exception à la procédure appelante dans le cas d'une chaîne d'appels Le mot clé « Throw »38 Professeur: Hamza SAID La notion d'exception Dim sr As StreamReader Try sr = New StreamReader("C:tempmonfichier.txt") Do Until sr.Peek = -1 Debug.WriteLine(sr.Read) Loop sr.Close() Catch ex As Exception Throw End Try
  • 39. • Elle permet aussi la personnalisation du message d'exception. Le mot clé « Throw »39 Professeur: Hamza SAID La notion d'exception Dim sr As StreamReader Try sr = New StreamReader("C:tempmonfichier.txt") Do Until sr.Peek = -1 Debug.WriteLine(sr.Read) Loop sr.Close() Catch ex As Exception Throw New Exception("L'opération a échoué") End Try
  • 40. • La personnalisation du message associé à une exception ne permet plus de connaître la véritable cause de sa levée. • Mais, on peut retransmettre l'objet « Exception » original à la procédure appelante. Le mot clé « Throw »40 Professeur: Hamza SAID La notion d'exception Dim sr As StreamReader Try sr = New StreamReader("C:tempmonfichier.txt") Do Until sr.Peek = -1 Debug.WriteLine(sr.Read) Loop sr.Close() Catch ex As Exception Throw New Exception("L'opération a échoué", ex) End Try
  • 41. • La personnalisation du message associé à une exception ne permet plus de connaître la véritable cause de sa levée. • Mais, on peut retransmettre l'objet « Exception » original à la procédure appelante. Le mot clé « Throw »41 Professeur: Hamza SAID La notion d'exception Dim sr As StreamReader Try sr = New StreamReader("C:tempmonfichier.txt") Do Until sr.Peek = -1 Debug.WriteLine(sr.Read) Loop sr.Close() Catch ex As Exception Throw New Exception("L'opération a échoué", ex) End Try Dans ce cas, la propriété « InnerException » de la classe « Exception » fournit une référence en lecture seule à l'exception sous-jacente.
  • 42. On a vu : • Comment travailler en mode break • Comment utiliser les points d'arrêt et l'instruction « Stop » • Les outils de débogage • Les fenêtres de débogage (Points d'arrêt, Automatique, Variables locales, Immédiat et Espion) • Comment gérer les exceptions grâce au bloc « Try Catch » En bref42 Professeur: Hamza SAID Débogage et Gestion des exceptions