2017-04-20 86 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年