OVH Cloud OVH Cloud

Intercepter les exceptions non-gérées

2 réponses
Avatar
ShadowFil
Bonjour,

Quelle est la différence entre les événements "AppDomain.UnhandledException"
et "Application.ThreadException" ?

Dans une application Window Forms, faut-il gérer les deux ?

Merci pour votre aide.

2 réponses

Avatar
Osman MALIK [MS]
Bonjour,

Dans une application WinForm, si une exception non trappée est générée, elle
sera gérée (hors du debuggeur) par le mechanisme par défaut des Winforms.
De fait, une boite de dialogue sera affichée indiquant l'erreur et vous
proposant de fermer l'application.
Pour pouvoir implémenter votre propre mécanisme de gestion, vous devez
inclure un EventHandler sur les exceptions ThreadException dans
l'application et inclure dans le code du handler votre propre mécanisme de
gestion propre de l'erreur (Logguer l'erreur, publier l'erreur vers
l'éditeur de l'application via Web Service , etc.)

Vous trouverez une présentation de cette approche ici:
http://pluralsight.com/blogs/craig/archive/2004/06/13/1455.aspx

Cordialement,

Osman MALIK
Microsoft France

"ShadowFil" wrote in message
news:
Bonjour,

Quelle est la différence entre les événements
"AppDomain.UnhandledException"
et "Application.ThreadException" ?

Dans une application Window Forms, faut-il gérer les deux ?

Merci pour votre aide.


Avatar
Paul Bacelar
http://www.codeguru.com/Csharp/Csharp/cs_syntax/errorhandling/article.php/c5905/
--
Paul Bacelar

"ShadowFil" wrote in message
news:
Oui, j'ai compris tout ça. Mais j'ai l'impression que les deux événements
font la même chose. Donc, dans quel cas on s'abonne à l'événement
"AppDomain.UnhandledException" et dans quel ca on s'abonne à l'événement
"Application.ThreadException" ?

Dans votre exemple, seul l'événement "Application.ThreadException" est
utilisé. De même, dans Entreprise Library, c'est cet événement qui est
utilisé pour intercepter les exceptions non gérées.

J'ai récupéré une autre application WinForms où les deux événements sont
utilisés pour gérer les exceptions non-gérées.

J'aimerais comprendre...