好的; 假设此代码在调试模式下运行 -
static StackFrame GetTopFrameWithLineNumber(Exception e)
{
StackTrace trace = new StackTrace(e);
foreach (StackFrame frame in trace.GetFrames())
{
if (frame.GetFileLineNumber() != 0)
{
return frame;
}
}
return null;
}
我总是返回 null。当我检查字符串时,为什么堆栈帧没有行号Exception.StackTrace
,对于任何非框架代码,它显然都有它们?从我不知道的异常构造堆栈跟踪是否存在一些问题?
编辑清晰: 在抛出的异常中,我可以在 StackTrace 属性中看到行号。我假设这意味着我拥有我需要的一切。