2009-11-09 28 views
0

我有一個安裝在網絡上的C#應用​​程序。一個使用網絡安裝的特定用戶遇到了「未將對象引用設置爲對象實例」的問題。爲什麼不訂閱持續拋出異常的空對象上的事件?

但是,如果我看問題,似乎每個用戶都應該有問題!

問題在於兩個演示者類。第一位演示者在第二位演示者上設置視圖。在第二位演示者中,視圖的設置者試圖將演示者訂閱到視圖上的事件。

但是對於特定的許可級別,該對象將始終爲空。

對我來說,這似乎應該一直失敗,但即使從VS2008運行,它只會失敗,如果我顯式設置一個斷點試圖訂閱空對象的語句。如果我只是在沒有斷點的情況下加載它,或者在另一個不相關的代碼塊上加載斷點,那麼它可以正常工作!

錯誤的代碼被包裝在一個Try/Catch塊中,所以它不應該只能忽略異常或者將它吞下到別的地方。

謝謝。

+1

你完全100%確定你的catch塊沒有拋出異常? – phoebus 2009-11-09 12:30:45

+0

其實向我們展示代碼會有所幫助。 – AnthonyWJones 2009-11-09 12:32:42

+0

你可能需要提供一些代碼,以便我們可以看到問題可能是什麼? – Matt 2009-11-09 12:33:20

回答

1

明顯的答案:您每次都沒有收到NRE,因爲每次都不是空對象。你的假設是不正確的,深入的代碼審查可能會揭示發生了什麼。

+0

或者確實假設'try'塊沒有吞嚥它,或者可能是首先到達的代碼;-p – 2009-11-09 12:41:18

+2

它在CLR中存在一個BUG !!!!! – Will 2009-11-09 12:52:53

+0

我不這麼認爲。因爲它只發生在一臺PC上,它必須是操作系統錯誤和處理器錯誤的錯誤組合。也許Windows更新或處理器的變化可能會有所幫助。 Oliver 2010-05-18 07:19:06

相關問題