8

Utilizzando il debugger di Visual Studio 2010, ho familiarità con l'utilizzo della finestra Stack chiamate per vedere da dove è stata richiamata la funzione attualmente in esecuzione.Come tornare alla riga di codice che ha generato un'eccezione nel debugger di Visual Studio 2010?

Sto lavorando con alcune applicazioni che hanno blocchi piuttosto grandi try. Supponendo che sospenda l'esecuzione del codice in un punto di interruzione nel blocco catch, qual è il modo più semplice per determinare quale riga del blocco try è stata sollevata dall'eccezione?

So che "Stack Trace" include dettagli come il numero di riga, ma esiste un modo più semplice, ad esempio un tasto di scelta rapida, per tornare alla riga di codice in cui è stata sollevata l'eccezione?

Aggiornamento: desidero sottolineare che non desidero spostare il punto di esecuzione sul blocco try; Voglio semplicemente un modo più semplice per sapere da quale riga è stata sollevata l'eccezione.

risposta

3

Una soluzione potrebbe essere quella di fare pausa VS su tutte le eccezioni:

Selezionare Exceptions sotto il menu Debug, e selezionare la casella "gettato" relative al Common Language Runtime Exceptions.

Ora VS ora deve fermarsi e contrassegnare la riga in cui viene generata l'eccezione. È possibile continuare come al solito, facendo clic sul pulsante di riproduzione o F5.

Lo svantaggio di questo è che tutte le eccezioni verranno catturate nello stesso modo, il che potrebbe essere noioso se ne avete molte.

+0

Vedrò come funziona. Lo odio solo quando una grande funzione lancia un'eccezione e devo scavare nella traccia dello stack per vedere da dove proviene! –

+0

A proposito, che dire degli errori JavaScript? C'è qualcosa di simile che posso usare per la gestione degli errori JavaScript? Un oggetto JavaScript 'Error' è trattato come un oggetto .net' Exception'. –

+0

Credo che ci sia un'impostazione/checkbox per JS nello stesso posto, ma non l'ho mai provato. Dovrebbe essere facile provarlo! – Kjartan

12

Se si esegue il "DEBUG", "Eccezioni ..." e quindi selezionare "Gettato" in "Eccezioni di runtime in linguaggio comune".

Exceptions

Poi, quando il codice rileva un'eccezione che si fermerà sulla linea con l'errore.

+1

Non avevo l'opzione "Eccezioni" in VS 2017, quindi ho dovuto abilitarlo utilizzando i passaggi descritti qui https://msdn.microsoft.com/en-us/library/d14azbfh(v=vs.110) aspx. Oppure, premi ALT + CTRL + E – PBG