相关疑难解决方法(0)

对象引用未设置为对象的实例.为什么.NET不显示哪个对象为"null"?

关于这个.NET未处理的异常消息:

你调用的对象是空的.

为什么.NET不显示哪个对象null

我知道我可以检查null并解决错误.但是,为什么.NET没有帮助指出哪个对象具有空引用以及哪个表达式触发了NullReferenceException

.net c#

103
推荐指数
2
解决办法
3万
查看次数

抛出NullReferenceException时检测目标对象是什么

我确信我们在某个时间或某个时间都收到了非常模糊的"对象引用未设置为对象的实例"异常.识别出问题的对象通常是设置断点和检查每个语句中的所有成员的繁琐任务.

有没有人有任何技巧可以通过编程手段或其他方式轻松有效地识别导致异常的对象?

- 编辑

看起来我像模样异常=).关键是_不必调试应用程序以找到错误的对象.编译器/运行时确实知道该对象已被分配/声明,并且该对象尚未被实例化.有没有办法在捕获的异常中提取/识别这些细节

@ W. Craig Trader

您的解释是设计问题的结果可能是我能得到的最佳答案.我对防御性编码非常强迫,并且在经过一段时间修复我的习惯之后设法摆脱了大部分这些错误.其余的只是把我调整到最后,并引导我将这个问题发布给社区.

谢谢大家的建议.

.net exception

30
推荐指数
2
解决办法
1万
查看次数

为什么空引用异常不能命名具有空引用的对象?

在我看来,我的很多调试时间花在追踪复杂语句中的空引用异常上.例如:

For Each game As IHomeGame in _GamesToOpen.GetIterator()
Run Code Online (Sandbox Code Playgroud)

为什么,当我得到NullReferenceException时,我可以获取堆栈跟踪中的行号,但不能获取等于null的对象的名称.换句话说,为什么:

Object reference not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)

代替

_GamesToOpen is not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)

要么

Anonymous object returned by _GamesToOpen.GetIterator() is null.
Run Code Online (Sandbox Code Playgroud)

要么

game was set to null.
Run Code Online (Sandbox Code Playgroud)

这是一个严格的设计选择,是为了保护代码的匿名性,还是编译器设计中有一个令人信服的理由不在调试时异常中包含这些信息?

.net theory compiler-construction exception

12
推荐指数
1
解决办法
2764
查看次数

标签 统计

.net ×3

exception ×2

c# ×1

compiler-construction ×1

theory ×1