2010-11-23 177 views
3

我已经编写了一个实用程序来监视未处理的异常,然后在发生异常时创建小型转储。未处理的异常

有没有办法,当事件触发,而不是标准的消息框显示未处理的异常,我可以禁用并显示我自己的不同信息?

谢谢。

+0

你用你自己的对话框替换MessageBox后?不确定你在这里问什么。 – 2010-11-23 15:01:43

+0

嗨,是的......当用户运行程序并发生未处理的异常时,它们会得到标准的未处理异常消息框。我想禁用该消息框。当发生未处理的异常时,我有一个事件触发,创建一个小型转储,我也想显示自己的错误消息。谢谢。 – 2010-11-23 15:04:09

回答

2

处理Application.ThreadException事件以显示您自己的错误消息。

你可以在你的主要方法是这样的顶部挂钩事件:

Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); 

然后你需要的处理方法:

static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) 
{ 
    MessageBox.Show(e.Exception.ToString()); 
} 

编辑:您还可以处理AppDomain.UnhandledException事件因为某些例外不通过ThreadException处理程序。

2

如果您正在实施它,您可以随心所欲地做任何事情。在MessageBox上显示它或将其写入日志文件。

1

你能做到这一点,

catch(Exception e) 
{ 
throw new Exception("This is unhandled exception"); 
}