Exception

26/04/2010 - 15:57 von Michaela Brauner | Report spam
Hallo,

wie kann ich ein globales UnhandleException simulieren?

double test;
int nenner = 0;
//test = 34 / nenner;
// throw new UnhandledExceptionEventArgs(sender, true);
throw new ArgumentException("The parameter was not supported");
throw new ArgumentNullException("ParamName", "MeineMessage");

-> Kann sein es kommt 3 mal vor, diese Anfrage, hatte Probleme beim
Versenden! Sorry.


Grüße Michaela

http://www.switchonthecode.com/tuto...exceptions


[STAThread]
static void Main()
{
AppDomain.CurrentDomain.UnhandledException += new
UnhandledExceptionEventHandler(frmTest.Application_UnhandleThreadException);
Application.ThreadException += new
System.Threading.ThreadExceptionEventHandler(frmTest.Application_ThreadException);

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmTest());

}


public partial class frmTest : Form
{
public static void Application_UnhandleThreadException(object
sender, UnhandledExceptionEventArgs e)
{
try
{
Exception ex = (Exception)e.ExceptionObject;

MessageBox.Show("Whoops! Please contact the developers
with "
+ "the following information:" + ex.Message +
ex.StackTrace,
"Fatal Error", MessageBoxButtons.OK,
MessageBoxIcon.Stop);
}
finally
{
Application.Exit();
}
}

public static void Application_ThreadException(object sender,
System.Threading.ThreadExceptionEventArgs e)
{
//**** HIER KOMME ICH IMMER REIN
DialogResult result = DialogResult.Abort;
try
{
result = MessageBox.Show("Whoops! Please contact the
developers "
+ "with the following information:" +
e.Exception.Message
+ e.Exception.StackTrace, "Application Error",
MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Stop);
}
finally
{
if (result == DialogResult.Abort)
{
Application.Exit();
}
}
}
 

Lesen sie die antworten

#1 FrankDzaebel
26/04/2010 - 17:39 | Warnen spam
Hallo Michaela,

wie kann ich ein globales UnhandleException simulieren?



im einfachsten Fall zum Beispiel so:

AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += new
UnhandledExceptionEventHandler(MyHandler);
throw new Exception("2");

denn diese Exception wird eben nicht behandelt.

Wenn zum Beispiel im "UnhandledExceptionMode.ThrowException"
aktiv ist, könnte ggf. der Handler nicht ausgeführt werden.
Hier Beispiele und Hintergründe:

[Application.SetUnhandledExceptionMode-Methode (System.Windows.Forms)]
http://msdn.microsoft.com/de-de/lib...nmode.aspx


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

Ähnliche fragen