C#不会在开发人员计算机上抛出NullReferenceException

时间:2017-04-20 08:28:26

标签: c# nullreferenceexception

我有一个代码如下:

public partical class frmXXX : Form
{

  SomeObject foo = null;

  public void XYZ()
  {
    foo.ABC.DEF(foo.XXX, foo.YYY, foo.ZZZ);
    somethingElse();
  }

  ...

}

似乎我有一个错误,当XYZ()为空时,我调用了foo。该程序在客户遇到NullReferenceException崩溃,这是我所期望的。但是,在我的开发机器上,我没有得到异常。我还用调试器验证了foo实际上是null。调试器说它是null。

调用null对象后,该方法将结束,因此不会调用somethingElse();。这就像一个无声的例外。我的开发机器是否有可能被错误配置,或者我是否启用了某些东西?

3 个答案:

答案 0 :(得分:2)

Cntrl + Alt + E (或调试 - >例外或VS2017 调试 - > Windows - >例外设置) 选择全部重置,这将返回默认例外。

还要确保选中仅我的代码。你可以在调试 - >下找到它。选项。这将带您进入调试器 - >一般选项。在这里,您可以查看仅我的代码

答案 1 :(得分:0)

你是否尝试将TryCatch放到这个:

public void XYZ()
  {

///try here
{
        foo.ABC.DEF(foo.XXX, foo.YYY, foo.ZZZ);
}
  ///catch
{
   return error here................
}
    somethingElse();
  }

答案 2 :(得分:0)

您可以将异常设置设置为非默认设置。 here是指向如何恢复默认设置以及如何根据需要调整设置的有用链接。

您可以使用 Ctrl + Alt + E 在2015 - 2017年

上检查您的设置