Een uitzondering controleren met behulp van de Uitzonderingshelper

Omgaan met uitzonderingen is een veelvoorkomend probleem, ongeacht uw technologie of expertiseniveau. Het kan een frustrerende ervaring zijn om erachter te komen waarom uitzonderingen problemen veroorzaken in je code. Wanneer u een uitzondering in Visual Studio aan het debuggen bent, willen we die frustratie verminderen door u relevante uitzonderingsinformatie te verstrekken, zodat u uw probleem sneller kunt oplossen.

Helper voor uitzonderingen

Pauzeer bij de uitzondering

Wanneer het foutopsporingsprogramma op een uitzondering onderbreekt, wordt er rechts van die regel code een foutpictogram van de uitzondering weergegeven. Een niet-modale uitzonderingen-helper wordt weergegeven nabij het uitzonderingspictogram.

Exceptionhelper naast een coderegel

Uitzonderingsgegevens inspecteren

U kunt het uitzonderingstype en het uitzonderingsbericht direct lezen in de Uitzonderingshelper, en of de uitzondering is geworpen of niet is afgehandeld. U kunt eigenschappen van het uitzonderingsobject controleren en weergeven door te klikken op de koppeling Details weergeven.

Null-verwijzingen analyseren

Vanaf Visual Studio 2017, voor zowel .NET als C/C++-code, ziet u null-analysegegevens in de Helper voor uitzonderingen wanneer u een NullReferenceException of een AccessViolation bereikt. De analyse wordt weergegeven als tekst onder het uitzonderingsbericht. In de onderstaande illustratie wordt de informatie weergegeven als 's was null'.

Uitzonderingshelper null-analyse

Notitie

Null-referentieanalyse in beheerde code vereist .NET versie 4.6.2. Null-analyse wordt momenteel niet ondersteund voor Universal Windows Platform (UWP) en andere .NET Core-toepassingen. Deze is alleen beschikbaar tijdens foutopsporingscode die geen Just-In-Time-codeoptimalisaties (JIT) heeft.

Uitzonderingsinstellingen configureren

U kunt de debugger zo configureren dat deze wordt onderbroken wanneer een uitzondering van het huidige type wordt opgeworpen vanuit de Uitzonderingsinstellingen van de Uitzonderingshulp. Als het foutopsporingsprogramma wordt onderbroken bij een gegenereerde uitzondering, kunt u het selectievakje gebruiken om onderbreking van dat uitzonderingstype uit te schakelen wanneer dit in de toekomst wordt gegenereerd. Als u deze specifieke uitzondering niet wilt stoppen wanneer deze in deze specifieke module optreedt, schakelt u het selectievakje in bij de modulenaam onder Behalve wanneer deze optreedt vanuit: in het venster Uitzonderingsinstellingen.

Interne uitzonderingen inspecteren

Als de uitzondering interne uitzonderingen heeft (InnerException, kunt u deze bekijken in de Helper voor uitzonderingen. Als er meerdere uitzonderingen aanwezig zijn, kunt u ertussen navigeren met behulp van de linkerpijl en rechterpijl die boven de oproepstack worden weergegeven.

Hulp voor uitzonderingen met interne uitzondering

Uitzonderingen die hergeworpen zijn inspecteren

In gevallen waarin een uitzondering is thrown de Uitzonderingshelper de aanroepstack weergeeft vanaf de eerste keer dat de uitzondering is gegenereerd. Als de uitzondering meerdere keren is gegenereerd, wordt alleen de aanroepstack van de oorspronkelijke uitzondering weergegeven.

Uitzonderingshulp met opnieuw opgegooide uitzonderingen

Asynchrone uitzonderingen controleren (.NET)

Vanaf .NET 9 wordt het Visual Studio foutopsporingsprogramma automatisch verbroken wanneer een asynchrone taakmethode een uitzondering genereert in .NET frameworkcode. Dit maakt het eenvoudiger om fouten in asynchrone code op te sporen, met name in ASP.NET, omdat er vaak uitzonderingen worden gegenereerd over asynchrone grenzen.

Schermopname van uitzonderingshulpmiddel met asynchrone methode.

De aanroepstack weergeven

Vanaf Visual Studio 2022 versie 17.3 kunt u uitzonderingsstackframes bekijken in het Call Stack-venster. Voor asynchrone uitzonderingen voegt u de mogelijkheid toe om snel symbolen te laden of bronnen te vinden en rechtstreeks naar de site van de uitzondering te gaan. Uitzonderingsstackframes in het venster Oproepstack bieden standaard functies voor aanroepstacks, zoals automatische navigatie, snel schakelen tussen frames, symboolbelasting en decompilatieopties om terug te gaan naar de broncode waarin de uitzondering is opgetreden.

hulpprogramma voor uitzonderingen met aanroepstack

Hulp bij AI krijgen

Als u Copilot hebt, kunt u AI-hulp krijgen tijdens het opsporen van fouten in uitzonderingen. Zoek de Analyseren met Copilot of Vraag het aan CopilotSchermopname van de knop 'Vraag het aan Copilot'.. In deze scenario's weet Copilot al de context voor uw vragen, zodat u geen context hoeft te bieden tijdens de chat. Zie Debug met Copilot voor meer informatie.

Als Copilot toegang wil tot de context van het uitvoervenster om het probleem te analyseren, wordt u gevraagd om deze machtiging in het chatvenster. Als u toestemming verleent, schakelt u Copilot in om een extra analyse van de uitzondering uit te voeren op basis van runtimegegevens. De Uitzonderingshulp, variabele analyse, codeinspectie en andere foutopsporingsscenario's krijgen toegang tot deze context voor de huidige foutopsporingssessie.

AI-assistentie krijgen met repository-context

Wanneer u in Visual Studio met een Azure DevOps opslagplaats werkt, bevat uitzonderingsanalyse met Copilot de context van de opslagplaats voor slimmere, snellere en nauwkeurigere uitzonderingsoplossing. Copilot maakt kruisverwijzingen naar uw open opslagplaats, waarbij eerdere bugs, problemen, pull-aanvragen en historische oplossingen worden meegenomen om bruikbare inzichten te verstrekken die direct relevant zijn voor uw codebasis.

Wanneer u een uitzondering tegenkomt:

  • Copilot identificeert de meest waarschijnlijke hoofdoorzaken, beïnvloede onderdelen en mogelijke oplossingen.
  • Copilot maakt gebruik van kennis van opslagplaatsen om vergelijkbare eerdere problemen en hun oplossingen te markeren, zodat u kunt leren van bestaande oplossingen.
  • Complexe uitzonderingen worden geanalyseerd met volledige context, waardoor runtimegedrag wordt verbonden met historische patronen, zodat u snel onverwachte of onjuiste waarden kunt begrijpen.
  • Door automatisch relevante oplossingen en inzichten onder de aandacht te brengen, bespaart Copilot tijd en vermindert het de noodzaak van de methode van vallen en opstaan die vaak nodig is om uitdagende problemen op te lossen.

Voor complexe bugs waarvoor end-to-end diagnose buiten één uitzondering is vereist, kunt u de foutopsporingsagent gebruiken. De Foutopsporingsprogrammaagent biedt een agentische werkstroom die oplossingen reproduceert, instrumenteert en valideert met behulp van live runtime-gegevens. Zie Agentic bugoplossing met de Debugger-agent voor meer informatie.

Een foutopsporingssessie delen met Live Share

In de Exception Helper kunt u een Live Share sessie starten met behulp van de koppeling Live Share-sessie starten.... Iedereen die deelneemt aan de Live Share-sessie, kan de Helper voor uitzonderingen zien, samen met andere foutopsporingsgegevens.