2017-04-20 82 views
3

扔的NullReferenceException我有一个看起来像这样的代码:C#不包括开发机

public partical class frmXXX : Form 
{ 

    SomeObject foo = null; 

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

    ... 

} 

看来,我有一个地方我叫XYZ()foo是无效的bug。该程序在客户端发生了NullReferenceException异常,这正是我所期望的。但是,在我的开发机器上,我没有得到一个例外。我还用调试器验证过foo实际上是空的。调试器说它是空的。

一旦空对象被调用,该方法将结束,因此不调用somethingElse();。这就像一个沉默的例外。有没有可能我的开发机器配置错误,或者是否启用了某些功能?

+0

检查VS调试异常设置? –

+0

如何配置特例,特别是对于'System.NullReferenceException',在抛出/未处理的方面呢? – ClickRick

+0

我在哪里可以找到这些设置?我对C#很陌生# –

回答

2

CNTRL + Alt + E键(或者调试 - >例外或VS2017 调试 - >窗口 - >例外设置) 选择重置所有,这将返回默认的例外。

还请确保只是我的代码被选中。你可以在调试 - >选项下找到它。这会带你到调试器 - >通用选项。在这里您可以查询Just My Code

+1

谢谢!虽然我必须明确地检查**“公共语言运行时异常” - > System.NullReferenceException **。看起来这种Exception在Visual Studio 2015中默认被忽略! (这有点令人震惊) –

0

你尝试把TryCatch这样的:

public void XYZ() 
    { 

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

只是为了检查该部分真正的错误返回。 –

0

你可以有你的例外设置中设置的东西,不是默认。 here是一个有用的链接,既指向如何恢复默认以及如何调整设置以满足您的需求。

你可以检查与按Ctrl + Alt + E设置VS二零一五年至2017年