今天调试代码的时候,有个页面后台抛出了StackOverflowException异常,
这个异常主要是无限循环或无限递归引起的,但是我的那段代码怎么调试,都没有发现无限循环或递归
很是郁闷,后来同事说可能你那对应到数据库字段的值有问题,
于是我一个个调试取值,终于找到了原因,但是这根源似乎和循环、递归不搭边啊!
这是之前的代码:
View Code
ArrayList list = new ArrayList();
if (dt.Rows.Count > 0)
{
list.Add(dt.Rows[0]["address"]);
}
Add里变量是object,我就没把取出的值ToString;
数据库中这个值是 null ,
在断点调试的时候,取出的值竟然是 {} 两个字符,这明显有问题!
解决方法:就是加上ToString
我的疑问:数据库中值是null,怎么后台取出来是 {} 呢?
这个问题怎么会抛出那个异常?
希望技术界的精英解疑答惑下