Inspecter une exception à l’aide de l’outil Exception Helper

La gestion des exceptions est un problème courant, quelle que soit votre technologie ou votre niveau d’expertise. Il peut être frustrant de comprendre pourquoi les exceptions posent des problèmes dans votre code. Lorsque vous déboguez une exception dans Visual Studio, nous voulons réduire cette frustration en vous fournissant des informations d'exception pertinentes pour vous aider à déboguer votre problème plus rapidement.

Assistant d’exception

Suspendre l’exception

Lorsque le débogueur s’arrête sur une exception, une icône d’erreur d’exception apparaît à droite de cette ligne de code. Une assistance sur les exceptions non modale s’affiche près de l’icône d’exception.

Assistance sur les exceptions en regard d’une ligne de code

Inspecter les informations d’exception

Vous pouvez instantanément lire le type et le message de l’exception dans l’Assistance d’exception, et savoir si l’exception a été levée ou est restée non gérée. Vous pouvez inspecter et afficher les propriétés de l’objet Exception en cliquant sur le lien Afficher les détails.

Analyser les références nulles

À compter de Visual Studio 2017, pour le code .NET et C++, lorsque vous appuyez sur un NullReferenceException ou un AccessViolation, vous voyez des informations d’analyse null dans l’Assistance d’exception. L’analyse s’affiche sous forme de texte sous le message d’exception. Dans l’illustration ci-dessous, les informations sont affichées comme « s était null ».

Analyse null de l’assistance sur les exceptions

Note

L'analyse de référence nulle dans le code géré nécessite la version .NET 4.6.2. L’analyse null n’est actuellement pas prise en charge pour Universal Windows Platform (UWP) et les autres applications .NET Core. Elle est disponible uniquement lors du débogage du code qui n’a pas d’optimisation de code juste-à-temps (JAT).

Configurer les paramètres d’exception

Vous pouvez configurer le débogueur pour qu’il s’arrête lorsqu’une exception du type actuel est levée à partir de la section Paramètres d’exception de l’assistance sur les exceptions. Si le débogueur est suspendu à une exception levée, vous pouvez décocher la case afin de désactiver l’interruption sur ce type d’exception lorsqu’elle est levée ultérieurement. Si vous ne souhaitez pas interrompre cette exception particulière lorsqu’elle est levée dans ce module particulier, cochez la case du nom du module sous Sauf en cas de levée de : dans la fenêtre Paramètres d’exception.

Inspecter les exceptions internes

Si l’exception comporte des exceptions internes (InnerException, vous pouvez les afficher dans l’assistance d’exception. S’il existe plusieurs exceptions, vous pouvez naviguer entre eux à l’aide des flèches gauche et droite affichées au-dessus de la pile des appels.

Gestionnaire d’exception avec exception interne

Inspecter les exceptions de nouveau levées

Dans les cas où une exception a été thrown, l’outil d’aide pour les exceptions affiche la pile des appels à partir de la première fois que l’exception a été déclenchée. Si l’exception a été levée plusieurs fois, seule la pile des appels de l’exception d’origine est affichée.

Assistance sur les exceptions avec des exceptions de nouveau levées

Inspecter les exceptions asynchrones (.NET)

À compter de .NET 9, le débogueur Visual Studio s’interrompt automatiquement lorsqu’une méthode Task asynchrone lève une exception dans le code du framework .NET. Cela facilite le débogage du code asynchrone, en particulier en ASP.NET, car les exceptions sont souvent lancées au-delà des limites asynchrones.

Capture d'écran de l'Exception helper avec une méthode asynchrone

Afficher la pile des appels

À partir de Visual Studio 2022 version 17.3, vous pouvez afficher les frames de pile d’exceptions dans la fenêtre Pile des appels. Pour les exceptions asynchrones, cela ajoute la possibilité de charger rapidement des symboles ou de localiser des sources et d’accéder directement au site de l’exception. Les frames de pile d’exceptions à l’intérieur de la fenêtre Pile des appels fournissent des fonctionnalités de pile d’appels standard, telles que la navigation automatique, le basculement rapide entre les frames, le chargement de symboles et les options de décompilation pour revenir au code source où l’exception a été levée.

Assistance sur les exceptions avec pile des appels

Obtenir de l’aide sur l’IA

Si vous avez Copilot, vous pouvez obtenir de l'assistance par l'IA lorsque vous déboguez des exceptions. Recherchez simplement le Analyze avec Copilot ou Ask CopilotScreenshot du bouton Ask Copilot.. Dans ces scénarios, Copilot connaissez déjà le contexte de vos questions. Vous n'avez donc pas besoin de fournir le contexte vous-même dans la conversation. Pour plus d’informations, consultez Debug avec Copilot.

Si Copilot souhaite accéder au contexte de la fenêtre Sortie pour vous aider à analyser le problème, il vous invite à obtenir cette autorisation dans la fenêtre Conversation. Si vous accordez une autorisation, vous activez Copilot pour effectuer une analyse supplémentaire de l’exception en fonction des détails du runtime. L’Assistance à l’exception, l’analyse des variables, l’inspection du code et d’autres scénarios de débogage accèdent à ce contexte pour la session de débogage actuelle.

Obtenez l’aide de l’IA avec le contexte du référentiel

Lorsque vous travaillez dans Visual Studio avec un dépôt Azure DevOps, l’analyse des exceptions avec Copilot intègre le contexte de référentiel pour une résolution d’exception plus intelligente, plus rapide et plus précise. Copilot recoupe les références dans votre référentiel ouvert, notamment les bogues passés, les problèmes, les demandes de tirage et les correctifs historiques, afin de fournir des informations exploitables qui sont directement pertinentes pour votre code source.

Lorsque vous rencontrez une exception :

  • Copilot identifie les causes racines les plus probables, les composants impactés et les correctifs potentiels.
  • Copilot tire parti des connaissances du référentiel pour mettre en évidence des problèmes passés similaires et leurs résolutions, ce qui vous aide à apprendre des correctifs existants.
  • Les exceptions complexes sont analysées avec un contexte complet, connectant le comportement d’exécution aux modèles historiques, afin de comprendre rapidement les valeurs inattendues ou incorrectes.
  • En exposant automatiquement les correctifs pertinents et les informations, Copilot gagne du temps et réduit le recours à la recherche par essais et erreurs souvent nécessaire pour le débogage de problèmes complexes.

Pour les bogues complexes qui nécessitent un diagnostic de bout en bout au-delà d’une exception unique, vous pouvez utiliser l’agent de débogueur. L’agent de débogueur fournit un flux de travail agentique qui reproduit, instrumente et valide les correctifs à l’aide de données runtime en direct. Pour plus d’informations, consultez La résolution des bogues agentiques avec l’Agent Débogueur.

Partager une session de débogage avec Live Share

À partir de l’Assistance d’exception, vous pouvez démarrer une session Live Share à l’aide du lien Démarrer la session Live Share.... Toute personne qui rejoint la session Live Share peut voir l’Assistance d’exception, ainsi que toutes les autres informations de débogage.