Cos'è esattamente un'eccezione prima possibilità? Come e dove ha origine in un programma .NET? E perché è chiamato con quel nome particolare (di che "possibilità" stiamo parlando)?
Cos'è esattamente un'eccezione prima possibilità? Come e dove ha origine in un programma .NET? E perché è chiamato con quel nome particolare (di che "possibilità" stiamo parlando)?
Risposte:
È un concetto di debug. Fondamentalmente eccezioni sono gettati al debugger prima e poi al programma vero e proprio, dove se non viene gestito tutto si butta al debugger un secondo tempo, dando una possibilità di fare qualcosa con esso in vostro IDE, prima e dopo l'applicazione stessa. Sembra essere un'invenzione di Microsoft Visual Studio.
catch
per questo, il controllo va lì. Se non ci sono catch
blocchi, si ottiene l'interruzione della "seconda possibilità", questa volta il messaggio è Un'eccezione non gestita di tipo 'foo' si è verificata in YourApp.exe . Da qui, provare a continuare o fare un passo avanti non avrà successo.
Le notifiche di eccezione della prima possibilità vengono generate quando viene generata un'eccezione. Le notifiche della seconda possibilità sono quando non viene catturato. (Possibilità - come un'opportunità per entrare nel codice nel debugger).
Ho appena iniziato a usare il debugger e mi sono imbattuto in questo. Nella mia ricerca, ho trovato il post del blog MSDN Che cos'è un'eccezione prima possibilità?che ha chiarito tutto per me.
I punti salienti del post sul blog per me sono che si riferisce alla notifica al debugger e non a qualcosa che il mio codice dovrebbe necessariamente gestire e, cosa più importante, "I messaggi di eccezione della prima possibilità il più delle volte non significano che ci sia un problema nel codice."
Quando un'applicazione viene sottoposta a debug, il debugger riceve una notifica ogni volta che viene rilevata un'eccezione. A questo punto l'applicazione viene sospesa e il debugger decide come gestire l'eccezione. Il primo passaggio attraverso questo meccanismo è chiamato eccezione di "prima possibilità".
A seconda della configurazione del debugger, riprenderà l'applicazione e passerà l'eccezione oppure lascerà l'applicazione sospesa ed entrerà in modalità debug. Se l'applicazione gestisce l'eccezione, continua a funzionare normalmente.
I messaggi di prima possibilità di eccezione molto spesso non significano che c'è un problema nel codice. Per le applicazioni / componenti che gestiscono le eccezioni in modo corretto, i messaggi di eccezione della prima possibilità informano lo sviluppatore che si è verificata una situazione eccezionale e che è stata gestita.
Dal punto di vista di uno sviluppatore, è più preoccupante un'eccezione di seconda possibilità, perché significherebbe che non è stata gestita in codice ; pertanto l'applicazione verrebbe interrotta.
La prima possibilità potrebbe essere molte di loro, ma quelle di cui preoccuparsi di più, ancora una volta, dal punto di vista dello sviluppo, sono una seconda possibilità, perché porterebbe a un crash dell'applicazione.
finally
blocchi vengano eseguiti. Una volta che il sistema ha deciso chi prenderà un'eccezione (e determinato che qualcuno lo farà effettivamente), il sistema inizierà a srotolare lo stack. Nota che se viene lanciata un'eccezione da unfinally
blocco ...