繁体   English   中英

NullReferenceException:当用户单击按钮时“未将对象引用设置为对象的实例”

[英]NullReferenceException: “Object reference not set to an instance of an object” when user clicks a button

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

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

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我只是做一些字符串工作,我不使用函数的参数做任何事情。

软件中有很多类似的功能,显然只有这个按钮才会出现错误。

首先捕获异常并获取特定错误....

这可能是因为连接字符串出错并且连接对象未初始化(好吧,如果您的应用程序使用了一个......)。

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

看这里:

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

编辑

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

AppDomain.UnhandledException 事件

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

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

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

希望这可以帮助。

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

这当然不是鼠标。

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

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

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

它对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM