当前位置:  开发笔记 > 编程语言 > 正文

Winforms毫不客气地退出"未处理的异常"

如何解决《Winforms毫不客气地退出"未处理的异常"》经验,为你挑选了1个好方法。

程序吐出其中一个框,表示发生了未处理的异常,应用程序必须退出.解决问题的唯一线索就是在事件日志中:

事件类型:错误事件源:.NET运行时2.0错误报告事件类别:无事件ID:5000日期:1/9/2009时间:8:47:44 AM用户:N/A计算机:DADIEHL描述:EventType clr20r3,P1 crm.client.exe,P2 1.0.1.0,P3 49667f61,P4 mscorlib,P5 2.0.0.0,P6 471ebc5b,P7 c35,P8 59,P9 system.formatexception,P10 NIL.

所以我将以下代码添加到program.cs:

try
{
    Application.Run(new WindowContainer());
}
catch (Exception exc)
{
    new DialogException(exc).ShowDialog();
}

只是这样我可以捕获任何异常,但用户仍然收到相同的消息,说应用程序必须退出.我无法在我的计算机上重现这一点,因此无法使用调试器来缩小范围.有谁知道如何收集更多信息或有任何想法是什么问题?



1> Jon Skeet..:

很可能异常是在不同的线程上抛出的.

您可能想要添加处理程序的两个事件:

AppDomain.UnhandledException

Application.ThreadException

添加记录异常的处理程序,您将获得更多信息.

非UI线程中未处理的异常的行为从.NET 1.1更改为2.0.他们曾经被吞下但现在他们停止了应用程序.如果你愿意,你可以使用app.config标志来选择旧的行为 - 但不是真的推荐,因为另一个线程中的例外可能意味着你的应用现在不稳定.我不记得那时的设置细节,但如果你愿意,我可以查看它们.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有