Domanda

Nel mio C # app, anche un'eccezione mi maniglia:

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

e poi in alimentatore che mostra la finestra di dialogo e facendo Application.Exit ancora ricevendo le finestre di dialogo di segnalazione degli errori con Send, non inviare ...

Come prevenire l'errore finestre di dialogo di segnalazione da popping up?


In realtà, se l'eccezione viene gettato dal costruttore del form principale quindi il programma finisce con rapporto di errore di Windows dlg. In caso contrario, se da qualche altra posizione di thread dell'interfaccia utente, quindi come previsto.

È stato utile?

Soluzione

È necessario interrompere l'applicazione da soli. Questo lo farà:

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

Altri suggerimenti

La finestra di dialogo che presenta la scelta di inviare o meno inviare una segnalazione errori a Microsoft è al di là delle eccezioni. Questo potrebbe accadere se si utilizza blocchi non sicuri {} o si utilizza P / Invoke di cui eseguire alcune operazioni illegali.

Penso che non dovrebbero combattere i sintomi del tuo problema. Le eccezioni non gestite non dovrebbero accadere in primo luogo.

Avete qualche indizio su ciò che sta causando loro?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top