Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
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.
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.
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
À partir de Visual Studio 2017, pour le code .NET et C++, lorsque vous atteignez un NullReferenceException ou un AccessViolation, vous voyez des informations sur l'analyse de nullité dans l'outil d'aide aux exceptions. 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. ».
Note
L’analyse de référence nulle dans le code managé nécessite la version 4,6.2 de .NET. L’analyse null n’est actuellement pas prise en charge pour la plateforme Windows universelle (UWP) et d’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.
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.
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 .NET Framework. Cela facilite le débogage du code asynchrone, notamment dans ASP.NET, car les exceptions sont souvent levées à travers les limites asynchrones.
Afficher la pile des appels
À partir de la version 17.3 de Visual Studio 2022, 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 des 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.
Obtenir de l’aide sur l’IA
Si vous possédez Copilot, vous pouvez obtenir une assistance de l'intelligence artificielle pendant le débogage des exceptions. Recherchez simplement le bouton Demander à Copilot
. Dans ces scénarios, Copilot connaît 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 Déboguer avec Copilot.
Obtenez l'assistance de l'IA dans le contexte du dépôt
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 croise les informations de votre référentiel ouvert, y compris les bogues passés, les problèmes, les pull requests et les correctifs historiques, pour fournir des insights exploitables directement pertinents pour votre base de code.
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 des référentiels 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 présentant automatiquement les correctifs et les insights pertinents, Copilot permet de gagner du temps et de diminuer le processus d'essai-erreur souvent nécessaire pour déboguer des problèmes difficiles.
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.