2013-10-19 9 views
5

Sono curioso, cosa succede realmente all'interno di .NET, se si è verificata un'eccezione nel metodo finalizzatore durante la procedura di garbage collection. La logica era differente per heap e LOH? Qualcuno potrebbe fornire una descrizione dettagliata?cosa succede in .NET se si è verificata un'eccezione nel metodo finalizzatore (~ Metodo)

+2

Controllare questo articolo (sezione: Finalizzatori ed eccezioni): http://msdn.microsoft.com/en-us/library/aa302312.aspx – kmatyaszek

+0

Grazie, lo controllerò e se non ci saranno risposte valide prima , proverò a rispondere a me stesso. – Ph0en1x

risposta

4

Niente di speciale. Il CLR rileverà l'eccezione e terminerà il programma.

Si noti che l'articolo collegato da @kmatyaszek è grossolanamente obsoleto. La deglutizione delle eccezioni nei finalizzatori e nei thread di lavoro era una funzionalità .NET 1.x che causava molta sofferenza. È piuttosto difficile diagnosticare il motivo per cui un programma smette di comportarsi correttamente quando ciò accade. .NET 2.0 ha messo fine a questo, la politica di default è di terminare sempre il programma. Tecnicamente può essere sostituito da un host CLR personalizzato e dall'elemento <legacyUnhandledExceptionPolicy> nel file app.exe.config. Non usarlo a meno che non ti piaccia la miseria.

Problemi correlati