c# - Winforms 毫不客气地以 "unhandled exception"退出

标签 c# .net winforms exception

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

Event Type: Error Event Source: .NET Runtime 2.0 Error Reporting Event Category: None Event ID: 5000 Date: 1/9/2009 Time: 8:47:44 AM User: N/A Computer: DADIEHL Description: 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();
}

这样我就可以捕捉到任何异常,但用户仍然收到相同的消息,表明应用程序必须退出。我无法在我的计算机上重现它,因此无法使用调试器来缩小它的范围。有谁知道收集更多信息的方法或知道问题出在哪里?

最佳答案

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

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

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

非 UI 线程中未处理异常的行为从 .NET 1.1 更改为 2.0。他们过去只是被吞下,但现在他们停止了应用程序。有一个 app.config 标志,您可以根据需要使用它来选择旧行为 - 但实际上并不推荐这样做,因为另一个线程中的异常很可能意味着您的应用现在不稳定。我现在不记得设置的详细信息,但如果您需要,我可以查找它们。

关于c# - Winforms 毫不客气地以 "unhandled exception"退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/428924/

相关文章:

wpf - 如何使WPF TreeView风格成为WinForms TreeView?

c# - 为什么等待任务有时会阻塞?

C# 错误 : Type 'x' already defines a member called 'y' with the same parameter types

c# - 列表框中的 WPF 数据模板多态性

c# - 创建和连接到 SQL Server 数据库的代码 : Whats wrong with it?

c# - 用反射覆盖私有(private)方法

c# - 将 float 转换为 double

c# - 无法将图片从 picturebox 保存到 datagridview

.net - 'GenerateBindingRedirectsOutputType' 选项有什么作用?

c# - 用于关闭对话框的用户控制按钮