当Exception发生时,您可以打印出StackTrace并查看它.
如果你想在没有异常的情况下获得StackTrace怎么办?
有没有办法做到这一点?
您可以通过调用Environment.StackTrace随时打印出栈跟踪
string tracktrace = System.Environment.StackTrace;
捕获异常时,可以构造StackTrace对象并从中提取有用信息.请参阅以下示例:
StackTrace st = new StackTrace(true); for(int i =0; i< st.FrameCount; i++ ) { // Note that high up the call stack, there is only // one stack frame. StackFrame sf = st.GetFrame(i); Console.WriteLine(); Console.WriteLine("High up the call stack, Method: {0}", sf.GetMethod()); Console.WriteLine("High up the call stack, Line Number: {0}", sf.GetFileLineNumber()); }
PS:这甚至没有例外 - 请参阅如何在.NET中打印当前堆栈跟踪,没有任何异常.