2

我已经将我的软件部署给了世界各地的几个用户,今天他们中的一个告诉我他遇到了这个错误。在我自己的机器上运行该软件时,我从未见过它,也没有收到任何其他报告。

当用户单击标准按钮时,他会收到以下错误文本:

System.NullReferenceException:对象引用未设置为对象的实例。
在 x.MainForm.btnCreateOutput_Click(Object sender, EventArgs e)
在 System.Windows.Forms.Control.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnClick(EventArgs e)
在 System.Windows.Forms.Button。 OnMouseUp(MouseEventArgs 事件)
在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.ButtonBase.WndProc( Message& m)
在 System.Windows.Forms.Button.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd,Int32 msg,IntPtr wparam,IntPtr lparam)

我真的不知道该怎么处理这个消息。

btnCreateOutput_Click我只是做一些字符串工作,我不使用函数的参数做任何事情。

软件里面有很多类似的功能,而且明显只有这个按钮才会出现错误。

4

5 回答 5

1

首先捕获异常并得到具体的错误......

这可能是因为连接字符串出错并且连接对象未初始化(如果您的应用程序完全使用...)..

于 2012-05-28T06:51:14.160 回答
0

启用第一次机会异常处理,Visual Studio它将准确地命中execption 引发的行。

看这里:

如何在 Visual Studio 中启用首次机会异常

编辑

如果这发生在客户端,请使用处理

AppDomain.UnhandledException 事件

并记录完整的堆栈跟踪,以及额外调试信息。

如果它在统计上发生在某个特定的客户端上,我会做的(已经掌握了我遇到问题的方法)是记录所有可能的null条件,并将该版本提供给客户端。在日志文件中发生异常后,我肯定会有更多信息需要处理。

我自然假设您不能在他这边调试应用程序,也因为事件处理程序中发生的异常通常与用户的行为模型有关。

希望这可以帮助。

于 2012-05-27T20:10:28.033 回答
0

最有可能:问题在于您正试图读取或写入属性或调用方法以获取未初始化对象的引用

这肯定不是鼠标。

于 2012-05-27T20:11:06.753 回答
0

内部存在问题btnCreateOutput_Click,要查看哪一行导致异常,您可以将 .pdb 附加到安装程序,您将获得详细信息,您的源文件/行中的哪些文件/行无效。

于 2012-05-28T06:43:05.657 回答
-1

这可能是一个老问题,但对于那些遇到这个问题的人来说,另一个可能的解决方案是检查机器上安装了哪个 .NET 版本。

更准确地说,.NET 4.0 Client Profile 是不够的。安装完整的 .NET 4.0,它现在应该可以工作了。当然,如果您的代码没有任何缺陷。

它对我有用。

于 2014-10-03T08:58:09.963 回答