2013-06-06 21 views
34

Quando si esegue la mia app in Visual Studio, termina con eccezioni non gestite piuttosto che mostrare una finestra di messaggio con le informazioni sulle eccezioni e continuare come sono abituato.Visual Studio non si interrompe sulle eccezioni non gestite dall'utente

Quali opzioni devo modificare per riportare il comportamento a cui sono abituato?

Modifica: in Debug/Eccezioni, l'opzione Utente non gestito è selezionata per Eccezioni CLR.

risposta

27

Debug->Exceptions->Check Thrown/User-Unhandled per Eccezioni Common Language Runtime

edit: Forse provare a fare un pulito/rebuild, ed eseguire di nuovo? Forse i simboli di debug sono corrotti o qualcosa del genere ..

+2

Sto cercando in Debug/Opzioni e Impostazioni/Debug/Generale, ma non vedo questa opzione. Sto cercando nel posto giusto? – BVernon

+0

@Brandon oops scusate, errore di battitura. È sotto debug-> eccezioni –

+0

Trovato: È in Debug/Eccezioni, non Debug/Opzioni – BVernon

16

A seconda dell'applicazione, le seguenti opzioni possono aiutare:

Strumenti → Opzioni ... → debug → generale

  • rottura quando le eccezioni si incrociano AppDomain o gestiti/confini nativi (solo gestiti)
  • Abilita l'assistente di eccezione
    • Svolgere la chiamata ck su eccezioni non gestite
  • Deselezionare Attiva Just My Code ← JMC può impedire di cattura eccezioni nel codice che non è tuo e/o manca simboli.
+0

Grazie, speravo davvero di deselezionare Just My Code, ma nessuno dei precedenti funzionava. Ho appena iniziato un nuovo progetto per vedere se ho avuto lo stesso comportamento quando è stato lanciato un errore, ma ha funzionato correttamente anche se (penso) le impostazioni dovrebbero essere le stesse. Il passo successivo è copiare le cose in un nuovo progetto, immagino. – BVernon

+6

** Disattivazione ** * Abilita solo il mio codice * ha indotto Visual Studio a nascondere la colonna * User-unhandled * nella finestra * Exceptions * e ha impedito a Visual Studio di infrangere * qualsiasi * eccezione utente-non gestita. Quindi nel mio caso, le tue istruzioni causano effettivamente il problema che questa domanda sta cercando di risolvere! – Sam

4

questa fissa per me: in rapida Lauch (Ctrl-Q) di tipo "ResetToC#" (o ResetTo qualcos'altro)

Ho avuto lo stesso problema per un lungo periodo di tempo. Nel menu Debug-> Eccezioni, mancava la colonna "User-unhandled"! Estremamente fastidioso.

Ho disinstallato tutti i miei plug-in, ho fatto una reinstallazione di VS, ma non funzionava (Visual Studio probabilmente lasciava alcune impostazioni sul mio computer che riutilizzava dopo la reinstallazione).

Questa potrebbe non sembrare la soluzione migliore in quanto ci deve essere qualche impostazione da qualche parte che lo avrebbe fatto anche. Non riuscivo a trovarlo e dopo non essere riuscito a rompere le eccezioni non gestite dall'utente per mesi, l'opzione ResetToC# era un sollievo.

+0

Grazie, se mi imbatto nuovamente in questo problema, proverò sicuramente questo perché non funzionava nient'altro :) – BVernon

+3

Nel mio caso, il motivo per cui la colonna * User-unhandled * mancava era * Enable Just My Code * era disabilitato in le opzioni di debug. – Sam

3

Avevo lo stesso problema in Visual Studio 2013 su un progetto C# molto grande. Tuttavia, se avessi creato un nuovo progetto vuoto e avessi lanciato un test ApplicationException, tutto funzionerebbe come previsto e il debugger si interromperà e mi darà l'assistente delle eccezioni. Fare lo stesso sul mio progetto esistente smetterebbe di fare il debug e tornare alla modalità di editing VS. Ho notato che nella finestra "Output", l'ultima traccia di debug avrebbe mostrato

Il programma '[2624] MyApplication.vshost.exe' è uscito con il codice di -1073741819 (0xc0000005) 'Violazione di accesso'.

Non ho davvero il lusso di copiare tutto in un nuovo progetto e nessuno dei suggerimenti sopra ha funzionato per me.Per tentativi ed errori ho trovato qualcosa che funzionava: Deseleziona "Riavvia lo stack di chiamate su eccezioni non gestite" in Opzioni> Debug> Generale> Abilita l'assistente delle eccezioni.

A proposito, se imposto manualmente lo stack di chiamate per svolgersi su questo stesso progetto C# tramite l'assistente delle eccezioni (facendo clic sul collegamento "Abilita modifica"), il debugger si chiude e non posso modificare-e- Continua. Ma su un nuovo progetto, si srotola e edit-and-continue funziona bene! Quindi c'è sicuramente qualcosa nel mio progetto che a VS non piace, ma lo userò come soluzione accettabile per ora.

11

Nel mio caso, quando sono andato a Debug ->Eccezioni, la colonna diUser-gestita mancava. Passare a Debug ->Opzioni e impostazioni e abilitare Abilita solo il mio codice risolto questo problema, che di conseguenza ha risolto completamente questo problema.

1

L'unica cosa che ha funzionato per me è stato:

Strumenti -> Importa ed esporta impostazioni -> Ripristina impostazioni e poi ripristinate C#.

0

Cambiare piattaforma di destinazione da x64 a x86 mi ha aiutato

12

Per Visual Studio 2015:

1.Open finestra delle impostazioni di eccezione (è nuova nel 2015) open Exception settings window (it's new in 2015)

2.Verificare Tutti CLR eccezioni enter image description here

3. Se non è necessario visual Studio per generare eccezioni specifiche deselezionare questa 0.123.317,90064 milioni

0

Se nella propria soluzione è presente più di un progetto di sito Web, verificare che il progetto di cui si desidera eseguire il debug sia attivo. Fare clic destro e selezionare Impostare come Progetto di avvio.

Questo mi ha bloccato per un po 'poiché non ci sono segni evidenti che il sito Web sbagliato sia in fase di debug.

Problemi correlati