2011-06-23 22 views
0

我debuggin是從一個.NET自定義組件拋出(無源和混淆)個微妙的問題。該組件在其OnPaint()方法中拋出一個NullReferenceException,該方法調用訂閱者(包括我的代碼)。我100%確定問題出在我的代碼中。問題是,Visual Studio調試器不會停止在那裏異常被拋出的點,因爲它應該(我在調試/例外對話框中啓用的NullReferenceException)。如何捕捉NullRefenceException在Visual Studio 2010

這是我第一次在Visual Studio中遇到這樣的問題。請提供關於識別違規代碼的任何想法?

末爾

回答

0

有可能的問題是你的代碼是不是扔NullReferenceException,但是它在某些時候可能返回null。你可以嘗試在你的職責是確保你沒有返回null,如Debug.Assert(retVal != null, "Returned null in function")末增加防護條件。

如果你確信你自己的代碼拋出一個NullReferenceException,請確保您打開拋出的異常,而不是用戶未處理的。

+0

是的,這很可能是我在某個時刻代碼返回的值是從組件的預期值不一致,有的空返回值是合法的。 有沒有辦法將一個斷點放入二進制文件? –

+0

@凱馬爾埃爾多安:是的,但它涉及破壞IL或本地命令。 – Guvante