2008-10-23 11 views
6

Attualmente sto scrivendo un server che ospita diversi moduli. Il server esegue ciascun modulo in un AppDomain separato. Quello che voglio ottenere è l'isolamento delle eccezioni, cioè quando un modulo genera un'eccezione non voglio che l'intero processo termini, solo questo specifico AppDomain. So che posso dire a CLR di ricorrere al vecchio comportamento (.NET 1.0) quando tutte le eccezioni non rilevate in diversi thread sono state inghiottite. Tuttavia, questa non è la soluzione più "elegante".Gestione delle eccezioni non rilevate nell'applicazione console C#

risposta

7

Come circa la sottoscrizione a questo evento:

AppDomain.CurrentDomain.UnhandledException 

dovrete lanciare la proprietà ExceptionObject dal tipo di oggetto da Exception.

Spero che questo aiuti.

+0

Sfortunatamente questo non è un gestore di eccezioni, ma ti avvisa solo dell'eccezione non gestita. Tutto in tutte le applicazioni si bloccherà ancora :( – paszczi

+0

quando si verifica un'eccezione non gestita, tecnicamente, l'applicazione si è già arrestata in modo anomalo. Ciò consente di eseguire un'azione e di eseguire il debug dell'applicazione o di avvisare l'utente. –