一开始以为是没有对未捕获的异常进行处理导致的。把处理模块加上以后,问题依旧。
在.NET下处理winform程序的未捕获的异常,可以使用的方法是,响应 AppDomain.CurrentDomain.UnhandledException 和 Application.ThreadException 两个事件。如果这两个事件有响应方法,就不会弹出操作系统级的报错窗体。
我的期望是,自己写一个报告未捕获异常的窗体,在出现异常时显示它。程序写完以后在除Win2003以外的操作系统都没有问题,能达到预期的效果。而且在许多 Win2003 操作系统下也能达到预期的效果。在一部分Win2003下,只有出现异常,就会弹出下面的错误框。
后来发现,不仅是未捕获的异常时会这样,就是在 try...catch(Exception) 块中的普通的异常,都会这样。只能贴上来看有没有能解决这个问题的网友。
.NET 环境是 2.0