c# - 对象引用未设置到对象的实例 - 如何在异常中找到有问题的对象名称?

标签 c# .net

这是我编程存在的祸根。部署应用程序后,当出现此错误时,再多的调试转储也不会告诉您什么对象未实例化。我有调用堆栈,这很好,它告诉我对象的大致位置,但是有什么方法可以让 .NET 告诉我对象的实际名称吗?

如果您在调试时捕捉到它们,程序当然会在有问题的生物上中断,但如果它发生在程序处于野外状态之后,那么祝您好运。

一定有办法的。

我已经研究了这些实例中返回的异常,但没有任何帮助。

最佳答案

不,这不可能。发生异常是因为引用为空,并且引用没有名称。变量和类/结构成员有名称,但不确定引用是否存储在其中任何一个中。例如,可以像这样创建引用:

someObject.GetInstance().DoSomething();

如果 GetInstance 方法返回 null,当您尝试使用该引用调用 DoSomething 时会出现 null 引用异常。引用只是方法的返回值,它没有存储在变量中,因此无法从中获取名称。

如果您在编译的程序集中有调试信息,您将在异常的堆栈跟踪中得到行号,但这是您能得到的最接近的。

关于c# - 对象引用未设置到对象的实例 - 如何在异常中找到有问题的对象名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2656288/

相关文章:

c# - .NET 条码扫描器 DeviceEnabled 的 POS 设置失败

c# - 在 C# 中替代 Session 变量,我们可以使用类及其对象来存储值而不是 session 变量吗?

c# - JavaScript中的条件语句

c# - 如何在 silverlight 中将 Textbox.Width 设置为 100%?

c# - 初始化下拉列表 - 使其保持不变

C# 根据字符串进行多次计算

.net - 如何在 ASP.NET MVC 中记录未处理的异常?

c# - 从 IL 构造方法引用集合

c# - 使用 .NET 读取 XML 文件

c# - Winforms 上的 SQL 更新语句