Exception von MainForm wird im Release Build nicht gefangen

17/11/2008 - 14:34 von Rade Sotonica | Report spam
Ich möchte eine Send-Email-Funktion als generellen Exception-Handler
realisieren. Im Debug mode fkt. es auch einwandfrei, wenn ich das
Application.Run mit try-catch umschließe:

try
{
Application.Run(new MainForm(sMyParameter));
}
catch(Exception e)
{
System.Diagnostics.Process.Start("mailto:TEST"); // kommt
noch...
throw e;
}

Wenn ich aber das Programm im Release baue und ausführe, wird eine
absichtlich erzeugte Test-Exception aber leider nicht gecatcht; es erscheint
nach wie vor das "Unbehandelte Ausnahme" - Fenster. Auch auf einem anderen
Rechner ohne installierten Compiler das gleiche Ergebnis.

Ich denke, daß es so funktionieren müßte, aber scheinbar hab' ich mal wieder
Tomaten auf den Augen. Gibt es vielleicht irgendwo eine Projekt-Einstellung,
die ich übersehen habe? Wie gesagt, im Debug funktioniert's.

Für einen Hinweis wàre ich sehr dankbar!

Ciao, Rade
 

Lesen sie die antworten

#1 Frank Dzaebel
17/11/2008 - 15:26 | Warnen spam
Hallo Rade,

Wenn ich aber das Programm im Release baue und
ausführe, wird eine absichtlich erzeugte
Test-Exception aber leider nicht gecatcht;



Nutze zum Beispiel das:

[AppDomain.UnhandledException-Ereignis (System)]
http://msdn.microsoft.com/de-de/lib...ption.aspx

[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
AppDomain.CurrentDomain.UnhandledException += new
UnhandledExceptionEventHandler
(CurrentDomain_UnhandledException);
try
{
Application.Run(new Form1("Fehler"));
}
catch (Exception)
{
System.Diagnostics.Process.Start("mailto:TEST"); // kommt
noch...
throw new Exception("Fehler: " + Environment.UserName);
}

//Application.Run(new Form1());
}

static void CurrentDomain_UnhandledException(object sender,
UnhandledExceptionEventArgs e)
{
Exception exp = e.ExceptionObject as Exception;
DialogResult res = new ThreadExceptionDialog(exp).ShowDialog();
}


Hintergründe ggf.:

[Tiefe Einblicke in CLR: Ausnahmefehlerverarbeitung in der CLR]
http://msdn.microsoft.com/de-de/mag...93966.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen