这是我编程存在的祸根。部署应用程序后,当出现此错误时,没有多少调试转储可以告诉您哪些对象未实例化。我有调用堆栈,这很棒,它大致告诉我对象在哪里,但是有没有办法让 .NET 告诉我对象的实际名称?
如果你在调试时发现它们,程序当然会在有问题的生物上崩溃,但如果它发生在程序野外之后,祝你好运。
必须有办法。
我已经研究了这些实例中返回的异常,但没有任何帮助。
不,这是不可能的。发生异常的原因是引用为空,并且引用没有名称。变量和类/结构成员都有名称,但不确定引用是否存储在其中任何一个中。例如,可以像这样创建引用:
someObject.GetInstance().DoSomething();
If the GetInstance
方法返回null,尝试使用引用调用时出现空引用异常DoSomething
。该引用只是方法的返回值,它没有存储在变量中,因此无法从中获取名称。
如果编译的程序集中有调试信息,您将在异常的堆栈跟踪中获得行号,但这是您能获得的最接近的行号。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)