2008-10-23 5 views
6

J'écris actuellement un serveur qui héberge plusieurs modules. Le serveur exécute chaque module dans un AppDomain distinct. Ce que je veux réaliser est l'isolation d'exception, c'est-à-dire lorsqu'un module déclenche une exception, je ne veux pas que le processus entier se termine, juste ce domaine d'application spécifique. Je sais que je peux dire au CLR de revenir à son ancien comportement (.NET 1.0) lorsque toutes les exceptions non interceptées dans différents threads ont été avalées. Cependant, ce n'est pas la solution la plus "élégante".Gestion des exceptions non interceptées dans l'application console C#

Répondre

7

Que diriez-vous abonner à cet événement:

AppDomain.CurrentDomain.UnhandledException 

Vous aurez à jeter la propriété ExceptionObject de type Object à l'exception.

Espérons que ça aide.

+0

Malheureusement, il ne s'agit pas d'un gestionnaire d'exceptions, mais il ne vous avertit que de l'exception non gérée. Dans l'ensemble, l'application va toujours planter :( – paszczi

+0

lorsqu'une exception non gérée se produit, techniquement, l'application a déjà planté.Cela vous permet de prendre une action et de déboguer l'application, ou notifier l'utilisateur. –

Questions connexes