Frage

In meinem C # app, auch ich handle Ausnahme:

Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
AppDomain.CurrentDomain.UnhandledException +=
    new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

und dann in Handler zeigt Dialogfeld und tun Application.Exit nach wie vor Windows-Fehlerberichterstattung Dialog mit Send bekommen, senden Sie nicht ...

Wie Dialog zu verhindern Windows-Fehlerberichterstattung von Aufspringen?


In der Tat, wenn die Ausnahme von Hauptformular Konstruktor geworfen wird dann endet das Programm mit Windows-Fehlerbericht dlg auf. Andernfalls, wenn von einer anderen Stelle des UI-Thread, dann wie erwartet.

War es hilfreich?

Lösung

Sie müssen die App selbst beenden. Dies wird es tun:

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));
}

Andere Tipps

Der Dialog, präsentiert die Auswahl ist über Ausnahmen zu senden oder nicht, einen Fehlerbericht an Microsoft senden. Dies könnte passieren, wenn Sie verwenden unsichere {} Blöcke oder Sie verwenden p / invoke ist, die eine gewisse illegale Operation durchführen.

Ich glaube, Sie sollten nicht die Symptome des Problems kämpfen. Die nicht behandelte Ausnahmen sollten nicht in erster Linie passieren.

Haben Sie Hinweise auf das, was sie verursacht?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top