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

Presentation PFE
Presentation PFEPresentation PFE
Presentation PFEasma amri
 
Présentation PFE - MarouaBouhachem VersionFinale
Présentation PFE - MarouaBouhachem VersionFinalePrésentation PFE - MarouaBouhachem VersionFinale
Présentation PFE - MarouaBouhachem VersionFinaleMaroua Bouhachem
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITLina Meddeb
 
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édicauxFehmi Arbi
 
Presentation pfe 2012
Presentation pfe 2012Presentation pfe 2012
Presentation pfe 2012Sellami Ahmed
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFEHedi Riahi
 
Presentation of summer Internship (présentation stage d\'été)
Presentation of summer Internship (présentation stage d\'été)Presentation of summer Internship (présentation stage d\'été)
Presentation of summer Internship (présentation stage d\'été)oxygen999
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSFaissoilMkavavo
 
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...younes elmorabit
 
Presentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'EtudesPresentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'EtudesTahani RIAHI
 
Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsMohamed Ayoub OUERTATANI
 
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...mouafekmazia
 
Conception et réalisation d'une application web et mobile de e-commerce
Conception et réalisation d'une application web et mobile de e-commerceConception et réalisation d'une application web et mobile de e-commerce
Conception et réalisation d'une application web et mobile de e-commerceAHMEDBELGHITH4
 
Présentation resto
Présentation restoPrésentation resto
Présentation restoMehdi Labidi
 
Vincent T'KINDT - Aide à la décision multicritère
Vincent T'KINDT - Aide à la décision multicritèreVincent T'KINDT - Aide à la décision multicritère
Vincent T'KINDT - Aide à la décision multicritèreGroupe ARTICQUE
 
presentation_PFE.pptx
presentation_PFE.pptxpresentation_PFE.pptx
presentation_PFE.pptxFazaFoudhaili
 

Tendances (20)

Soutenance Pfe 2013
Soutenance Pfe 2013 Soutenance Pfe 2013
Soutenance Pfe 2013
 
Presentation PFE
Presentation PFEPresentation PFE
Presentation PFE
 
Présentation PFE - MarouaBouhachem VersionFinale
Présentation PFE - MarouaBouhachem VersionFinalePrésentation PFE - MarouaBouhachem VersionFinale
Présentation PFE - MarouaBouhachem VersionFinale
 
Méthodes Agiles - La Méthode XP
Méthodes Agiles - La Méthode XPMéthodes Agiles - La Méthode XP
Méthodes Agiles - La Méthode XP
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRIT
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 
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
 
Presentation pfe 2012
Presentation pfe 2012Presentation pfe 2012
Presentation pfe 2012
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 
Presentation of summer Internship (présentation stage d\'été)
Presentation of summer Internship (présentation stage d\'été)Presentation of summer Internship (présentation stage d\'été)
Presentation of summer Internship (présentation stage d\'été)
 
présentation PFE (2)
présentation PFE (2)présentation PFE (2)
présentation PFE (2)
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTS
 
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
 
Presentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'EtudesPresentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'Etudes
 
Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clients
 
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
 
Conception et réalisation d'une application web et mobile de e-commerce
Conception et réalisation d'une application web et mobile de e-commerceConception et réalisation d'une application web et mobile de e-commerce
Conception et réalisation d'une application web et mobile de e-commerce
 
Présentation resto
Présentation restoPrésentation resto
Présentation resto
 
Vincent T'KINDT - Aide à la décision multicritère
Vincent T'KINDT - Aide à la décision multicritèreVincent T'KINDT - Aide à la décision multicritère
Vincent T'KINDT - Aide à la décision multicritère
 
presentation_PFE.pptx
presentation_PFE.pptxpresentation_PFE.pptx
presentation_PFE.pptx
 

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

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...Hamza SAID
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logiciellecyrilgandon
 
4 asynch task_services_thread
4 asynch task_services_thread4 asynch task_services_thread
4 asynch task_services_threadSaber LAJILI
 
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 teamsThierry Gayet
 
Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationPHPPRO
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?CGI Québec Formation
 
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 !Paris Salesforce Developer Group
 
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
 
Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Jonathan Martin
 
AgileTour Strasbourg 2011 BDD with jBehave
AgileTour Strasbourg 2011 BDD with jBehaveAgileTour Strasbourg 2011 BDD with jBehave
AgileTour Strasbourg 2011 BDD with jBehaveCedric Vidal
 
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 2012AgileCoach.net
 
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 MavenArnaud Héritier
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Ippon
 

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

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 .netHamza SAID
 
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...Hamza SAID
 
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 chaineeHamza SAID
 
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 risqueHamza SAID
 
09 visual basic .net - exercice - geometrie
09 visual basic .net - exercice - geometrie09 visual basic .net - exercice - geometrie
09 visual basic .net - exercice - geometrieHamza SAID
 
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 noteHamza SAID
 
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 anniversaireHamza SAID
 
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...Hamza SAID
 
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...Hamza SAID
 
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 tableauxHamza SAID
 
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 collectionsHamza SAID
 
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...Hamza SAID
 
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 - exerciceHamza SAID
 
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...Hamza SAID
 
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 baseHamza SAID
 
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 .netHamza SAID
 
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 coursHamza 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

Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEgharebikram98
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 

Dernier (20)

Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 

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