好的,假设这段代码在调试模式下运行 -
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属性中的行号。我假设这意味着我已经拥有了所需的一切。