从异常详细信息中获取发生异常的类名和方法名
本文关键字:异常 方法 详细信息 获取 | 更新日期: 2023-09-27 18:05:04
我在我的Global.asax.cs中有这个Application_Error事件,它将获得我的应用程序中发生的任何未处理的异常。我得到了错误信息。我想要得到的是异常发生的类名和方法名,以便更容易跟踪异常的原因。请帮助。
Global.asax.cs
protected void Application_Error(object sender, EventArgs e)
{
var errMsg = Server.GetLastError().Message;
if (string.IsNullOrWhiteSpace(errMsg)) return;
//Get Class name and method name
//ErrorLog.SaveLog(errMsg, Classname, Methodname);
Context.ClearError();
}
您可以使用StackTrace在调用堆栈中找到这些信息,参见http://msdn.microsoft.com/en-us/library/system.diagnostics.stackframe.aspx的示例。
最简单的方法是记录日志:
Server.GetLastError().ToString()
这包括异常和任何内部异常的错误消息和堆栈跟踪,在某些情况下,还包括其他有用的信息(*)。
注意,Server.GetLastError().StackTrace
只会给你外部异常的堆栈跟踪,不太有用。
(*)我所说的"其他有用信息"是指任何异常派生类都可以覆盖ToString
以添加特定于该异常类型的附加信息。例如,SqlException覆盖ToString
以附加ClientConnectionId
。