代码在调试模式下编译。 我抓住了一个Exception并打印出来:
catch (Exception ex)
{
Trace.TraceError(ex.ToString());
}
我希望看到完整的堆栈跟踪,但我只得到一行:
System.NullReferenceException:未将对象引用设置为对象的实例。
在C:\ path \ Code.cs中的FullClassName.UpdateLink(FileVersione Obj):第137行
调用堆栈在哪里?
internal void UpdateLink(FileVersione Obj)
{
TipoFile tf;
JobManager.CommonClasses.BusinessObjects.Archivio.FileInfo fi;
try
{
fi = Obj.FileInfo; <--- Null exception here!!!
tf = fi.TipoFile;
.......................
}
catch (Exception ex)
{
Trace.TraceError("UpdateLink Error: " + ex.ToString());
}
}
调用该函数有两种方法:
private void UpdateLinks()
{
FileVersione fv;
while (true)
{
fv = (FileVersione)_UpdateLinksQueue.Dequeue();
this.UpdateLink(fv);
}
}
OR:
private void UpdateLinks(FileInfo file, bool recursive, int depth)
{
ServerDIFileVersione asfd;
IEnumerable<FileLink> links;
asfd = (ServerDIFileVersione)FileVersione.StdDataInterface;
asfd.UpdateLink(file.VersioneAttuale);
if (recursive && depth<10)
{
links = file.Relazioni;
foreach (FileLink link in links)
{
if (link.Figlio != null)
UpdateLinks(link.Figlio, recursive, ++depth);
}
}
}