Condividi tramite


Esaminare un'eccezione usando l'helper eccezioni

La gestione delle eccezioni è un problema comune, indipendentemente dalla tecnologia o dal livello di competenza. Può essere un'esperienza frustrante capire perché le eccezioni causano problemi nel codice. Quando si esegue il debug di un'eccezione in Visual Studio, è consigliabile ridurre la frustrazione fornendo informazioni rilevanti sulle eccezioni per semplificare il debug del problema più rapidamente.

Helper eccezioni

Sospendere l'eccezione

Quando il debugger si interrompe in un'eccezione, viene visualizzata un'icona di errore di eccezione a destra di tale riga di codice. Un helper eccezioni non modale verrà visualizzato accanto all'icona dell'eccezione.

Helper eccezioni accanto a una riga di codice

Esaminare le informazioni sulle eccezioni

È possibile leggere immediatamente il tipo di eccezione e il messaggio di eccezione nell'helper eccezioni e se l'eccezione è stata generata o non gestita. È possibile esaminare e visualizzare le proprietà dell'oggetto Exception facendo clic sul collegamento Visualizza dettagli .

Analizzare i riferimenti Null

A partire da Visual Studio 2017, sia per il codice .NET che per C/C++, quando si raggiunge o NullReferenceException un AccessViolation, vengono visualizzate informazioni sull'analisi null nell'helper eccezioni. L'analisi viene visualizzata come testo sotto il messaggio di eccezione. Nella figura seguente le informazioni vengono visualizzate come "s was null.".

Analisi null dell'helper eccezioni

Nota

L'analisi dei riferimenti Null nel codice gestito richiede .NET versione 4.6.2. L'analisi Null non è attualmente supportata per piattaforma UWP (Universal Windows Platform) (UWP) e per altre applicazioni .NET Core. È disponibile solo durante il debug del codice che non dispone di ottimizzazioni del codice JIT (Just-In-Time).

Configurare le impostazioni delle eccezioni

È possibile configurare il debugger per interrompere l'interruzione quando viene generata un'eccezione del tipo corrente dalla sezione Impostazioni eccezioni dell'helper eccezioni. Se il debugger viene sospeso in corrispondenza di un'eccezione generata, è possibile usare la casella di controllo per disabilitare l'interruzione in quel tipo di eccezione quando viene generata in futuro. Se non si vuole interrompere questa particolare eccezione quando viene generata in questo particolare modulo, selezionare la casella di controllo in Base al nome del modulo in Except when thrown from: nella finestra Exception Settings (Impostazioni eccezioni).

Esaminare le eccezioni interne

Se l'eccezione presenta eccezioni interne (InnerException, è possibile visualizzarle nell'helper eccezioni. Se sono presenti più eccezioni, è possibile spostarsi tra di esse usando le frecce sinistra e destra visualizzate sopra lo stack di chiamate.

Helper eccezioni con eccezione interna

Esaminare le eccezioni rigenerate

Nei casi in cui un'eccezione è stata thrown l'helper eccezioni mostra lo stack di chiamate dalla prima generazione dell'eccezione. Se l'eccezione è stata generata più volte, viene visualizzato solo lo stack di chiamate dall'eccezione originale.

Helper eccezioni con eccezioni rigenerate

Esaminare le eccezioni asincrone (.NET)

A partire da .NET 9, il debugger di Visual Studio si interrompe automaticamente quando un metodo task asincrono genera un'eccezione all'interno del codice .NET Framework. In questo modo è più semplice eseguire il debug di codice asincrono, in particolare in ASP.NET, perché le eccezioni vengono spesso generate attraverso limiti asincroni.

Screenshot dell'helper eccezioni con il metodo asincrono.

Visualizzare lo stack di chiamate

A partire da Visual Studio 2022 versione 17.3, è possibile visualizzare i frame dello stack di eccezioni all'interno della finestra Stack di chiamate. Per le eccezioni asincrone, questo aggiunge la possibilità di caricare rapidamente i simboli o individuare le origini e passare direttamente al sito dell'eccezione. I frame dello stack di eccezioni all'interno della finestra Stack di chiamate forniscono funzionalità standard dello stack di chiamate, ad esempio lo spostamento automatico, il passaggio rapido tra frame, caricamento dei simboli e opzioni di decompilazione per tornare al codice sorgente in cui è stata generata l'eccezione.

Helper eccezioni con stack di chiamate

Ottenere assistenza per l'intelligenza artificiale

Se si ha Copilot, è possibile ottenere assistenza per l'intelligenza artificiale durante il debug delle eccezioni. Basta cercare il pulsante Ask CopilotScreenshot del pulsante Ask Copilot.. In questi scenari, Copilot conosce già il contesto per le domande, quindi non è necessario fornire il contesto in chat. Per altre informazioni, vedere Debug con Copilot.

Condividere una sessione di debug con Live Share

Dall'helper eccezioni è possibile avviare una sessione di Live Share usando il collegamento Avvia sessione live share.... Tutti gli utenti che partecipano alla sessione di Live Share possono visualizzare l'helper eccezioni insieme a qualsiasi altra informazione di debug.