Obtenir dialogue Rapport d'erreurs Windows
Question
Dans mon application C #, même exception poignée I:
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
AppDomain.CurrentDomain.UnhandledException +=
new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
puis dans le gestionnaire montrant boîte de dialogue et de faire Application.Exit obtenir encore les fenêtres de dialogue de rapport d'erreurs avec Envoyer, Do not Envoyer ...
Comment éviter de dialogue de rapports d'erreurs de fenêtres de sauter vers le haut?
En fait, si l'exception est levée à partir constructeur du formulaire principal, puis le programme se termine avec une erreur Windows affiche DLG. Sinon, si d'un autre emplacement de fil interface utilisateur, puis comme prévu.
La solution
Vous aurez besoin de mettre fin à l'application vous. Cela fera:
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) {
var ex = e.ExceptionObject as Exception;
MessageBox.Show(ex.ToString());
if (!System.Diagnostics.Debugger.IsAttached)
Environment.Exit(System.Runtime.InteropServices.Marshal.GetHRForException(ex));
}
Autres conseils
La boîte de dialogue qui présente le choix d'envoyer ou non envoyer un rapport d'erreur à Microsoft est au-delà des exceptions. Cela peut se produire si vous utilisez des blocs dangereux {} ou que vous utilisez p / Invoke de qui effectuent une opération illégale.
Je pense que vous ne devriez pas lutter contre les symptômes de votre problème. Les exceptions non gérées ne devraient pas se produire en premier lieu.
Avez-vous des indices sur ce qui les provoque?