首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SCSF中的异常处理

SCSF中的异常处理
EN

Stack Overflow用户
提问于 2009-11-27 20:41:27
回答 3查看 412关注 0票数 1

我有一个SCSF应用程序,我尝试使用它来处理大多数异常

Application.ThreadException += new ThreadExceptionEventHandler(new ThreadExceptionHandler().ApplicationThreadException);

事件处理程序:-

代码语言:javascript
复制
public class ThreadExceptionHandler
    {
        public void ApplicationThreadException(object sender, ThreadExceptionEventArgs e)
        {
            MessageBox.Show(e.Exception.Message, "An exception occurred:", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

工作正常。我可以捕获这个代码块中的所有应用程序异常。

但问题是,在处理异常之后,代码再次执行并再次执行相同的异常,从而再次生成代码。这种情况会一直发生,直到我收到一条windows消息windows将错误信息发送给microsoft。

有人能帮我指出我可能出错的地方吗?

提前感谢

Vikram

注意:-目前我正在抛出一个按钮事件的新异常(“测试异常”)。我这样做是为了在我的应用程序中提供事件处理。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-04 18:59:48

在我用头撞了一下代码之后,我发现问题是由于我的SCSF解决方案有一个winforms Shell,而在这个shell上有WPF用户控件。

当异常是在这些WPF用户控件上生成时(主要是这种情况),它们不会被Application.ThreadException捕获,因为WPF的应用程序类与Winforms的不同。

在WPF应用程序中,需要处理Application.DispacherUnhandledException事件。

只是我的小发现..。

票数 2
EN

Stack Overflow用户

发布于 2009-11-27 20:55:34

你必须设置

代码语言:javascript
复制
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);

有关示例代码,请参阅this MSDN page

但请注意,这种包罗万象的异常处理并不能很好地替代逻辑中的异常处理。这是一个很好的备份,但在全局处理程序中做的最好的事情是记录信息并退出。你的应用程序可能处于不安全/未定义的状态。

票数 2
EN

Stack Overflow用户

发布于 2011-08-18 02:25:44

仅仅处理Application.DispatcherUnhandledException就会让你大吃一惊。我使用过具有WPF用户控件的SCSF。通读这篇文章。http://social.msdn.microsoft.com/forums/en-US/wpf/thread/c57cac13-f960-49a1-94b5-a3fd316ac4bc/,我也建议你处理AppDomain.UnhandledException。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1808551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档