Inspecter une exception à l’aide de l’assistance sur les exceptions

Le traitement des exceptions est un problème courant, quel que soit votre technologie ou votre niveau d’expertise. Cela peut être une expérience frustrante de déterminer pourquoi les exceptions sont à l’origine de 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.

Assistance sur les exceptions

Suspendre l’exception

Lorsque le débogueur s’arrête sur une exception, une icône d’erreur d’exception s’affiche à 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 lire instantanément le type d’exception et le message d’exception dans l’assistance d’exception, et indiquer si l’exception a été levée ou 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 null

À compter de Visual Studio 2017, pour le code .NET et C/C++, lorsque vous appuyez sur un NullReferenceException ou un AccessViolation, vous voyez des informations d’analyse null dans l’assistance sur les exceptions. L’analyse s’affiche sous la 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

Notes

L’analyse de référence Null dans le code managé nécessite .NET version 4.6.2. L’analyse null n’est actuellement pas prise en charge par 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 sur les exceptions. Si plusieurs exceptions sont présentes, vous pouvez naviguer entre elles à l’aide des flèches gauche et droite affichées au-dessus de la pile des appels.

Assistance sur les exceptions avec exception interne

Inspecter les exceptions de nouveau levées

Dans les cas où une exception a été thrown, l’assistance sur les exceptions affiche la pile des appels à partir de la première levée de l’exception. 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)

Depuis .NET 9, le débogueur de Visual Studio s'interrompt automatiquement lorsqu'une méthode asynchrone lance une exception dans le code du cadre .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 l’assistance IA

Si vous avez Copilot, vous pouvez obtenir de l’aide sur l’IA pendant le débogage d’exceptions. Il suffit de rechercher le bouton Demander à Copilot Capture d’écran du 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.

Partager une session de débogage avec Live Share

À partir de l’assistance sur les exceptions, 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 sur les exceptions ainsi que d’autres informations de débogage.