所以我有一个函数,它又调用一个以Exception对象作为参数的方法。
public DataSet SomeFunction()
{
try
{
}
catch (Exception ex)
{
ErrorLogInDB.LogError(ex);
throw;
}
}
public static void LogError(Exception exception)
{
StackTrace st = new StackTrace(exception, true);
StackFrame frame = new StackFrame(0);
MethodBase site = exception.TargetSite;
string fileName = frame.GetFileName();
string methodName = site.Name;
int lineNo = frame.GetFileLineNumber();
string errorDescription = exception.Message;
}
从上面的函数LogError
我得到filename
null
,methodname
不正确,line number
。怎么解决?
答案 0 :(得分:4)
...试
StackTrace trace = new StackTrace(exception, true);
StackFrame stackFrame = trace.GetFrame(trace.FrameCount - 1);
string fileName = stackFrame.GetFileName();
string methodName = stackFrame.GetMethod().Name();
int lineNo = stackFrame.GetFileLineNumber();