Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

L'essentiel de Visual Studio 2017

Déboguer les exceptions

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Lorsqu'une exception est levée dans le code, le débogueur ne s'y arrête pas forcément. Voyez quelle est l'option à changer pour provoquer un arrêt sur la ligne qui génère l'erreur.
05:30

Transcription

Voyons maintenant le débogage en cas d'exception. Ça tombe bien d'ailleurs parce qu'on a une exception. C'est quoi une exception ? C'est une erreur, déclenchée dans le code, parce que soit j'ai fait une bêtise, soit j'ai omis quelque chose. En l'occurrence, je n'ai pas fait de bêtise ici puisque quand je démarre, j'ai bien une exception mais je l'ai correctement récupérée et, au lieu de faire crasher mon programme j'affiche une boîte de dialogue. Ça, c'est très très bien. Par contre, si je suis en débogage, ce qui m'intéresse maintenant, c'est savoir où ceci se produit. Donc, je pourrais très bien venir dans mon main et puis, aller au début, quelque part ici, poser un point d'arrêt et puis ensuite aller instruction par instruction pour pour trouver où ça se trouve. Mais, c'est quand même assez pénible comme processus, on peut faire les choses beaucoup plus rapidement. Donc, si cette exception se déclenche et affiche un message d'erreur de façon propre, ça veut dire que j'ai mis ça dans un try/catch. Et que, dans la partie catch il y a une boîte de dialogue que j'ai programmée pour s'afficher. Ce que je vais faire, c'est aller dans débogage dans mes Fenêtres et ici ouvrir la fenêtre de Paramètres d'exception qui va m'indiquer comment dans une séance de débogage ici je vais réagir par rapport à des exceptions possibles. Donc là, j'ai plein de choses qui sont ouvertes, je vais diminuer et je vois qu'il y a soit des cases à cocher qui sont à moitié remplies puisqu'elles ne comportent pas le petit v mais elles sont blanches. Par exemple, vous voyez qu'il n'y a seulement un certain type d'exceptions qui sont cochées, soit qui sont complètement pas cochées. Il se trouve qu'ici je suis sur Common Language Runtime Exceptions donc Language Runtime, c'est la machine virtuelle « .net » et que j'ai ici toute une série d'exceptions possibles. Ce sont des objets exceptions qui viennent des différents name space et des différentes classes de ma bibliothèque de classes du CLR donc de .net. Qu'est-ce que je vais faire ? Je pourrais dire maintenant en sélectionnant tout, comme ceci, tu vas arrêter l'exécution en cas d'exception levée et en cas de d'exception de tous les types que je viens de sélectionner. Ce qui va changer maintenant la condition. Avant, comme ce n'était pas coché, dès que l'exception était levée, on continuait le code soit on crashe, soit on entre dans un try/catch. Et si on crashe, automatiquement, au débogage, j'aurai eu la ligne, je me serais arrêté sur la ligne qui pose problème. Mais comme je suis dans un try/catch ici l'exécution continue tranquillement. Je ne vois pas où ça se trouve. Maintenant, en ayant sélectionné ceci, je réexécute et vous voyez que je suis maintenant bien arrêté, ici. Il y a bien un bloc try, mais le fait d'avoir sélectionné dans ses paramètres d'exception l'arrêt malgré tout, le débogeur m'arrête au bon endroit et je sais de quoi il s'agit : c'est ici que j'ai cette exception. Cette exception, j'ai ici une fenêtre d'exception levée, je vais diminuer un peu le pourcentage d'affichage, voilà, on va le voir et j'ai une fenêtre de détail ici pour l'exception. Donc on me dit : l'exception a été levée. J'ai le type d'exception qui est ici, j'ai le message de l'exception, donc tout ce qu'il me faut et je peux aussi afficher les détails c'est-à-dire voir clairement tout le contenu de l'objet exception. Il se trouve que dans les exceptions .net, on a souvent un message comme ceci, et puis parfois, si le message n'est pas clair vous pouvez entrer dans l'Inner exception, l'exception interne où vous allez trouver un message plus clair. Ce n'est pas le cas ici mais quand vous déboguerez vous-mêmes vos expressions vous aurez peut-être quelque chose de pas très compréhensible ici. Il faudra entrer dans l'Inner Exception pour voir un message plus clair. Donc, je vais fermer ceci, j'ai toutes les informations qu'il me faut. Je sais de quoi il s'agit, je peux maintenant agir. Je vais arrêter, revenir sur les paramètres d'exception, juste pour vous montrer que si vous savez exactement quel type d'exception va se déclencher vous pouvez désélectionner tout ceci et demander un arrêt uniquement pour ce type d'exception. Pour cela, vous pouvez utiliser ici la recherche. Je sais que c'est un file not found donc je pourrais faire « NotFound » par exemple, je fais avoir un filtre. Je vais mettre File, ce n'est pas suffisant, voilà. Et je vois qu'il y a un « Systeme.IO.FileNotFound » je ne sélectionne que ceci et maintenant je vais avoir peut-être une exécution correcte pour toutes les autres exceptions qui ne m'intéressent pas mais un arrêt seulement sur cette exception-ci.

L'essentiel de Visual Studio 2017

Découvrez les éléments fondamentaux de l'interface de Visual Studio. Exploitez la richesse des fonctionnalités de cet environnement de développement intégré de Microsoft.

5h16 (65 vidéos)
Aucun commentaire n´est disponible actuellement
 
Spécial abonnés
Date de parution :10 août 2017

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 !