问题描述
在 .NET Framework 4.5.2 的 StringBuilder 上调用 AppendLine() 方法时,我遇到了一个奇怪的 NullPointerException。
异常轨迹如下图所示:
System.NullReferenceException:NullReferenceException 未将对象引用设置为对象的实例。
在 System.Text.StringBuilder.Append(String value)
在 System.Text.StringBuilder.AppendLine(String value)
......
应用程序的转储如下所示:
很明显,异常是由StringBuilder的m_ChunkChars字段引起的。
此外,在相关上下文中没有并发或反射操作。
我曾尝试分析StringBuilder的源代码,但最终没有找到任何可能的原因。
任何人都可以对可能导致这种情况的可能情况提出任何想法吗?
public void SomeLocalMethod()
{
var log = new StringBuilder();
//some operations
log.AppendLine("Some log text.")
.Append("Some log")
.AppendLine("Some log");
}
代码很简单。我们在一个方法中构造了一个 StringBuilder 来记录多个操作。
我认为它不是线程安全问题的原因是这个 StringBuilder 是一个局部变量,并且没有在其方法之外传递引用。
此外,我们在系统日志中发现,此类错误在多个节点上是连续且频繁的,我认为这可能不是由对象初始化期间的意外访问引起的。
代码再次在 .NET framework 4.5.2 上运行。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)