L'essentiel de Visual Studio 2015

Déboguer pour trouver la source d'un bogue

Testez gratuitement nos 1326 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Mettez en pratique vos connaissances et identifiez la source d'un bogue dans une séquence de débogage.
06:48

Transcription

On a vu qu'il y avait une petite erreur qui apparaissait sous forme de fenêtre, de boîte de dialogue. Je vous la remontre. Je fais «Démarrer». Ici, il y a un point d'arrêt. Je fais «F5» pour continuer et j'obtiens cela. «Error loading folders» : le fichier est introuvable. Cela dit, c'est assez simple : je peux aller voir à cet endroit si ce fichier se trouve ou pas à l'endroit où il est attendu, c'est-à-dire dans «SQLTrismegiste», «Trismegiste», «bin», «Debug» et enfin «CorpusHermeticum» où je vois qu'il manque tous mes fichiers .xml car il faut que je les copie à la main à partir de mes sources dans le répertoire Debug, ils ne se sont pas copiés eux-mêmes. Je peux faire cela, donc je fais OK. Mon application est lancée, je la ferme et on redémarre. Je fais «F5» à nouveau. Me voici ici. Je connais un peu mon code, je vais aller un peu plus vite. Si je veux continuer l'exécution jusqu'au moment où cela peut se produire, je vais bien entendu faire des «F10», «F10» étant le pas à pas principal. Je continue : est-ce que cela vient de «LoadConfig» ? J'ai un appel de méthode, c'est possible : je rentre à l'intérieur avec «F11». Une remarque par rapport à cela : vous voyez ici des informations qui vous disent combien de temps a été écoulé. Si je fais un «F10» ici et ici, j'ai toujours le nombre de millisecondes écoulées pour chaque instruction. Cette information est amenée par les outils de diagnostic. Souvenez-vous, je clique dessus et je vais voir la fenêtre de diagnostic dont on avait parlé avant. C'est très pratique, car vous allez pouvoir à la fois déboguer et voir des informations de performance. Peut être que vous appelez une méthode qui appelle du link où qui fait une boucle «for each» qui est un peu longue. Cela arrive souvent quand on doit afficher quelque chose dans une interface et on ne se rend pas compte de tout ce qui est généré derrière. Restez attentifs : cela peut être très pratique pour améliorer votre code. Là, on débogue : je suis dans mon «LoadConfig». Il ne s'est rien passé, j'en suis sorti, je continue. Ce n'est probablement pas cela, je fais «F10» : ça, ça n'a rien à voir. Toujours «F10». Je tombe sur new CorpusManager.Manager. Est-ce qu'il se passe quelque chose dans le constructeur ? Je peux évidemment, vous vous souvenez, aller voir et faire un «Aperçu de la définition» pour jeter un coup d'oeil. Je vois que j'ai un «LoadHermetica», c'est peut-être cela, alors d'accord. Je fais «F11», puis «F10» et «F11» à nouveau. Je vois qu'on va dans le dossier «CorpusHermeticum». On prend tous les fichiers .xml, on fait une liste. Ce qui va m'intéresser, ce sont les variables locales. Qu'est-ce qui se passe ici ? Est-ce que j'ai une liste de fichiers ? Je vois que j'ai «files», qui est manifestement vide, ici. Dès que vous passez quelque part, vous avez des variables. À l'endroit où vous vous trouvez, c'est-à-dire dans la portée, vous avez toutes vos variables locales et c'est très intéressant de les analyser, de regarder ce qu'elles contiennent car cela va vous aider à voir où vous en êtes et si vos variables contiennent bien ce que vous attendez. Je continue : ce n'était pas vraiment là qu'il se passait quelque chose. Je continue avec des «F10». On sort de là : va-t-il se produire quelque chose ? Je suis ici, je fais un «new.Main» pour créer mon ViewModel" et je vois que j'ai fait un PopulateFolders. Cela se produit probablement ici : je vais faire un «F10» pour ne pas rentrer dans le constructeur. Par contre ici, je vais faire «F11» et regarder ce qui se passe. Je fais une nouvelle liste. Je fais un «New XmlDocument». Je vois que mon «doc» est maintenant un objet qui a été créé. Je fais un «doc.Load» de «Folders.xml». Si j'essaie de faire un load sur un fichier qui n'existe pas, cela ne va pas marcher. Vous voyez que je suis dans «try» et «catch». Ici, on va gérer l'exception. Ce qui est intéressant, c'est le «MessageBox» qui va afficher le message vu avant. Comme je suis dans un «try-catch», ici au débogage, on ne va pas lever l'exception mais la gérer par le «try-catch». Je peux changer cela. Vous vous souvenez peut être des paramètres d'exception. Je vais venir ici et chercher un paramètre d'exception. Lequel d'ailleurs ? On fait ça en deuxième partie, car il faut savoir de quelle exception il s'agit. Je continue avec un «F10». Je suis branché directement sur le «catch». Mon «e» ici est la variable qui va récupérer l'exception. Je fais «F10» pour alimenter la variable et je vais regarder à l'intérieur. J'ai un objet «Exception» qui contient les information de l'exception et une propriété spécifique du .net : un objet «InnerException» qui me montre l'exception interne et qui m'affiche effectivement «Le fichier est introuvable». J'ai mon «StackTrace» et je veux savoir de quel type d'exception il s'agit. Je vais regarder dans ma fenêtre exécution. Elle me permet de saisir une expression et de la tester. Je vais mettre «e». Cet objet est disponible dans la fenêtre exécution. Je peux interroger l'état actuel de mon code. Je vais faire un «GetType» comme ceci pour obtenir une sortie de mon type. Il s'agit d'un «System.IO» de FileNotFoundException. En partant de cela, on va déclencher un arrêt lors de la levée de l'exception.

L'essentiel de Visual Studio 2015

Apprenez à créer des applications, à les déboguer et à les déployer avec Visual Studio. Développez des programmes en .NET pour Windows, les appareils mobiles et le web.

3h06 (40 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Visual Studio Visual Studio 2015
Spécial abonnés
Date de parution :18 févr. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !