2009-11-09 32 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

相关问题