Gestione delle eccezioni (debug)
Un'eccezione è una situazione anomala che ha luogo durante l'esecuzione di un programma. Le eccezioni sono spesso indicatori della presenza di problemi che è necessario identificare e correggere mediante il debug. Quando si verifica un'eccezione, il debugger visualizza un messaggio di eccezione nella finestra di Output, a meno che questa funzionalità non sia stata disabilitata nella finestra di dialogo Generale, Debug, finestra di dialogo Opzioni.
Quando si verifica l'eccezione, l'esecuzione viene interrotta o meno dal debugger a seconda dei casi.
Se si verifica un'eccezione non ASP.NET non gestita, l'esecuzione viene sempre interrotta.
È possibile impostare il debugger in modo da interrompere l'esecuzione immediatamente quando viene generata un'eccezione, prima che venga richiamato qualsiasi gestore. Per ulteriori informazioni, vedere Procedura: interrompere l'esecuzione in caso di eccezione.
Se si esegue il debug con Just My Code, esiste una terza opzione. È possibile impostare il debugger in modo da interrompere l'esecuzione ogni volta che viene generata un'eccezione non gestita da un gestore nel codice utente ("My Code"). Per ulteriori informazioni, vedere Procedura: interrompere l'esecuzione in caso di eccezioni non gestite dall'utente.
In ASP.NET è disponibile un gestore eccezioni di livello superiore che gestisce le eccezioni in modo da visualizzare pagine di errore agli utenti del browser. Se non è attivata l'opzione Just My Code, questo gestore impedisce il passaggio al debugger di un'eccezione non gestita. Assicurarsi di attivare l'opzione Just My Code per il debug ASP.NET.
Tenere presente che, se si verifica un'eccezione non gestita, il debugger interrompe sempre l'esecuzione. L'impostazione Non gestita dall'utente non cambia questo comportamento.
Nel debugger di Visual Studio vengono riconosciute le seguenti categorie di eccezioni:
Eccezioni C++
Eccezioni Common Language Runtime
Assistenti al debug gestiti
Controlli runtime nativi
Eccezioni Win32
Eccezioni della fase di esecuzione di JavaScript
Eccezioni di accesso alla memoria GPU
Per la maggior parte delle eccezioni è disponibile un gestore progettato per rispondere all'eccezione quando si verifica, operazione che costituisce un'opportunità di correggere la situazione anormale del programma. Per i controlli runtime nativi non sono disponibili gestori.
In un'applicazione Visual Basic tutti gli errori vengono rappresentati nel debugger come eccezioni, anche se si utilizzano gestori errori di tipo On Error.
Per Visual Basic e C# è disponibile nel debugger una nuova funzionalità denominata Informazioni sulle eccezioni, che consente di ottenere maggiori informazioni quando si verifica un'eccezione.
Negli argomenti riportati di seguito vengono fornite informazioni sulla gestione delle eccezioni:
Procedura: interrompere l'esecuzione in caso di eccezioni non gestite dall'utente
Utilizzo dei controlli runtime senza la libreria di runtime del linguaggio C
-
Nota
(Solo per Visual Basic e Visual C#) Se si verifica un'eccezione non rilevata quando la funzionalità Informazioni sulle eccezioni è disattivata, nella finestra Variabili locali viene aggiunta una pseudo-variabile $exception.È possibile espandere questa pseudo-variabile per visualizzare le informazioni sull'eccezione.