Kontrollera ett undantag med hjälp av undantagshjälpen

Att hantera undantag är ett vanligt problem, oavsett teknik eller expertnivå. Det kan vara frustrerande att ta reda på varför undantag orsakar problem i koden. När du felsöker ett undantag i Visual Studio vill vi minska frustrationen genom att ge dig relevant undantagsinformation som hjälper dig att felsöka problemet snabbare.

undantagshjälp

Pausa undantaget

När felsökningsprogrammet bryter mot ett undantag visas en undantagsfelikon till höger om den kodraden. En icke-modal undantagshjälp visas nära undantagsikonen.

Undantagshjälp bredvid en kodrad

Granska undantagsinformation

Du kan omedelbart läsa undantagstypen och undantagsmeddelandet i undantagshjälpen och om undantaget utlöstes eller inte. Du kan granska och visa egenskaper för undantagsobjektet genom att klicka på länken Visa information.

Analysera null-referenser

Från och med Visual Studio 2017 visas nullanalysinformation i undantagshjälpen för både .NET och C/C++-kod när du träffar en NullReferenceException eller en AccessViolation. Analysen visas som text under undantagsmeddelandet. I bilden nedan visas informationen som "s var null".

Undantagshjälp för null-analys

Notera

Null-referensanalys i hanterad kod kräver .NET version 4.6.2. Null-analys stöds för närvarande inte för Universal Windows Platform (UWP) och andra .NET Core-program. Den är bara tillgänglig vid felsökning av kod som inte har några JIT-kodoptimeringar (Just-In-Time).

Konfigurera undantagsinställningar

Du kan konfigurera felsökningsprogrammet så att det bryts när ett undantag av den aktuella typen genereras från avsnittet Undantagsinställningar i undantagshjälpen. Om felsökaren pausas vid ett undantagsfel som genereras kan du använda kryssrutan för att inaktivera brytning av den undantagstypen när den utlöses i framtiden. Om du inte vill bryta på det här undantaget när det kastas i den här modulen, markerar du kryssrutan bredvid modulnamnet under Förutom när det kastas från: i fönstret Undantagsinställningar.

Inspektera inre undantag

Om undantaget har några inre undantag (InnerExceptionkan du visa dem i undantagshjälpen. Om det finns flera undantag kan du navigera mellan dem med hjälp av de vänster- och högerpilar som visas ovanför anropsstacken.

Undantagshjälp med inre undantag

Inspektera återkastade undantag

I fall där ett undantag har thrown visar undantagshjälpen anropsstacken från första gången undantaget utlöstes. Om undantaget utlöstes flera gånger visas endast anropsstacken från det ursprungliga undantaget.

Undantagshjälp med omkastade undantag

Granska asynkrona undantag (.NET)

Från och med .NET 9 bryts Visual Studio-felsökaren automatiskt när en asynkron Task-metod utlöser ett undantag i .NET-ramverkskod. Detta gör det enklare att felsöka asynkron kod, särskilt i ASP.NET, eftersom undantag ofta genereras över asynkrona gränser.

Skärmbild av undantagshanterare med asynkron metod.

Visa anropsstacken

Från och med Visual Studio 2022 version 17.3 kan du visa undantagsstackramar i Anropsstackfönstret. För asynkrona undantag lägger detta till möjligheten att snabbt läsa in symboler eller hitta källor och gå direkt till platsen för undantaget. Undantagsstackramar i Anropsstackfönstret inbegriper standardfunktioner som automatisk navigering, snabb växling mellan stackramar, symbolinläsning, och alternativ för dekompilering för att återgå till källkoden där undantaget kastades.

undantagshjälp med

Få AI-hjälp

Om du har Copilot kan du få AI-hjälp när du felsöker undantag. Leta bara efter knappen Analyze med Copilot eller Fråga CopilotSkärmbild av knappen Fråga Copilot.. I dessa scenarier känner Copilot redan till kontexten för dina frågor, så du behöver inte ange kontext själv i chatten. Mer information finns i Debug med Copilot.

Om Copilot vill ha åtkomst till utdatafönsterkontexten för att analysera problemet uppmanas du att ange den här behörigheten i chattfönstret. Om du beviljar behörighet aktiverar du Copilot för att utföra ytterligare analys av undantaget baserat på körningsinformation. Undantagshjälp, variabelanalys, kodgranskning och andra felsökningsscenarier får åtkomst till den här kontexten för den aktuella felsökningssessionen.

Få AI-hjälp med kodförrådskontext

När du arbetar i Visual Studio med en Azure DevOps-kodförråd, använder undantagsanalys med Copilot kodförrådets kontext för en smartare, snabbare och mer exakt lösning av undantag. Copilot genomför korsreferenser till ditt öppna arkiv, inklusive tidigare buggar, problem, pull-begäranden och historiska korrigeringar för att ge åtgärdsbara insikter som är av direkt relevans för din kodbas.

När du stöter på ett undantag:

  • Copilot identifierar de mest sannolika rotorsakerna, de komponenter som påverkas och potentiella lösningar.
  • Copilot utnyttjar lagringsplatsens kunskaper för att belysa liknande tidigare problem och deras lösningar, vilket hjälper dig att lära dig av befintliga korrigeringar.
  • Komplexa undantag analyseras med fullständig kontext och ansluter körningsbeteende till historiska mönster, så att du snabbt kan förstå oväntade eller felaktiga värden.
  • Genom att automatiskt presentera relevanta korrigeringar och insikter sparar Copilot tid och minskar det prov-och-fel-arbete som ofta krävs för att felsöka avancerade problem.

För komplexa buggar som kräver diagnos från slutpunkt till slutpunkt utöver ett enda undantag kan du använda felsökningsagenten. Felsökningsagenten tillhandahåller ett agentbaserat arbetsflöde som återskapar, instrumenterar och validerar korrigeringar med direktkörningsdata. Mer information finns i Lösning av agentfel med felsökningsagenten.

Dela en felsökningssession med Live Share

Från undantagshjälpen kan du starta en Live Share-session med hjälp av länken Starta Live Share-session.... Alla som ansluter till Live Share-sessionen kan se undantagshjälpen tillsammans med annan felsökningsinformation.