1

好的,所以我遇到了这个奇怪的问题,我已经在 Google 上搜索了很多次以寻找答案,但无济于事……无论如何,我遇到了这个问题,我似乎无法让我的程序在何时向我显示错误消息我想。这种情况发生过很多次,最终发现它是一个为空的变量,但由于某种原因没有引发错误?

这是我刚刚拥有的一个示例。

人员单击一个按钮以显示一个名为 debug 的新表单。

Debug debug = new Debug();
debug.Show(this);

这是我的调试形式。

public new void Show(IWin32Window owner)
{
    base.Show(owner);
    Parent.Move += new EventHandler(delegate(object sender, EventArgs e)
    {
        Location = new Point(Parent.Location.X + Parent.Width, Parent.Location.Y);
    });
}

长话短说,代码不起作用,因为 Parent 为空,但它甚至从未暗示这是问题所在。

我确信有一些解释,但我还没有在我的谷歌搜索中找到一个......

4

1 回答 1

2

您还可以在 Visual Studio 中尝试以下操作:

  1. 调试 > 异常
  2. 展开“公共语言运行时异常”条目
  3. 展开“系统”条目
  4. 单击 System.NullReferenceException 的复选框
  5. 点击确定
  6. 运行附加了调试器的应用程序。

现在,只要抛出 NullReferenceException,它就会导致调试器中断。

我猜你的应用程序被包装在一个 try{} catch{} 中,或者在调用堆栈底部的某个地方导致 debug.Show() 被调用,代码被包装在一个 try{} catch{}

于 2012-05-25T10:02:06.813 回答