Bonjour,
1. Les exceptions non gérés
Actuellement, lorsque ton application plante, la fenêtre classique des applications windows qui plantent apparaît.
Dans la classe de ta form, ajoutes la méthode:
1 2 3 4
| void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
MessageBox.Show(e.ExceptionObject.ToString() + e.ToString());
} |
Dans le constructeur de ta form, ajoutes la ligne:
1 2
|
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); |
Désormais lorsque ton application plantera, une fenêtre apparaîtra t'indiquant la pile d'exécution et tu pourras voir ce qui fait planter ton application.
2. Log
Tu peux mettre en place un système de log pour tracer le déroulement de ton application et ainsi essayer de comprendre ce qui la fait planter.
Tu peux par exemple écrire différentes informations dans un fichier texte, ou les afficher dans le système d'evenements de Windows, ou les afficher dans la console avec la commande
Console.WriteLine("tonMessage")
Pour afficher la console alors que ton application est une Windows Forms, tu édites les propriétés de ton application, tu vas dans Application, et pour type de sortie tu choisis Application console.
Pour toute application, il faut tracer un minimum le déroulement de l'application, ainsi en cas de problème tu peux retrouver ce qui s'est passé.
Tu peux aussi pour logger des informations utiliser le namespace System.Diagnostics. Regarde sur ce site, il y a des cours sur le sujet.
Pour en revenir à ton problème, les logs ne te donneront pas forcément grand chose car comme le dis SaumonAgile, il y a des chances que ton problème soit liés à un problème de référencement, c'est à dire que sur le poste où tu exécutes ton application, cette dernière essaie de charger une assembly ou une dll qu'elle ne trouve pas sur ce poste.
Utilises la première solution et mets si possible le résultat en réponse à ce post qu'on puisse voir ce qu'il en est.
Bye
Partager