Condividi tramite


Esaminare un'eccezione utilizzando il 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

Metti in pausa sull'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 assistente delle eccezioni non modale verrà visualizzato accanto all'icona dell'eccezione.

helper delle eccezioni accanto a una riga di codice

Esaminare le informazioni sulle eccezioni

È possibile leggere immediatamente il tipo e il messaggio di eccezione nell'Helper per 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 un NullReferenceException o 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 era null.".

helper eccezioni analisi null

Nota

L'analisi dei riferimenti Null nel codice gestito richiede .NET versione 4.6.2. L'analisi Null non è attualmente supportata per la piattaforma UWP (Universal Windows Platform) 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 quando viene generata un'eccezione del tipo corrente dalla sezione Impostazioni eccezioni dell'Helper eccezioni. Se il debugger si ferma su un'eccezione lanciata, è possibile usare la casella di controllo per disabilitare l'interruzione su quel tipo di eccezione in futuro. Se non si voglia interrompere questa particolare eccezione quando viene generata in questo particolare modulo, selezionare la casella di controllo accanto al nome del modulo in Eccetto quando viene generata da: nella finestra 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.

assistente eccezioni con eccezione interna

Esaminare le eccezioni rilanciate

Nei casi in cui un'eccezione è stata thrown, l'Helper Eccezioni mostra lo stack di chiamate dal momento in cui l'eccezione è stata lanciata per la prima volta. Se l'eccezione è stata generata più volte, viene visualizzato solo lo stack di chiamate dall'eccezione originale.

Assistente per eccezioni con eccezioni ri-lanciate

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 dello strumento di supporto Exception 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 Call Stack. 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 delle eccezioni all'interno della finestra Call Stack forniscono funzionalità standard dello stack di chiamate, come la navigazione automatica, il passaggio rapido tra i frame, il caricamento dei simboli e le opzioni di decompilazione per tornare al codice sorgente in cui è stata generata l'eccezione.

assistente eccezione con stack di chiamate

Ottenere assistenza per l'intelligenza artificiale

Se hai Copilot, puoi ottenere assistenza dall'intelligenza artificiale durante la risoluzione delle eccezioni. Cerca semplicemente il pulsante Ask Copilote trova lo screenshot 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 di Live Share.... Tutti gli utenti che partecipano alla sessione di Live Share possono visualizzare l'helper eccezioni insieme a qualsiasi altra informazione di debug.