Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从异常详细信息中获取发生异常的类名和方法名_C#_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

C# 从异常详细信息中获取发生异常的类名和方法名

C# 从异常详细信息中获取发生异常的类名和方法名,c#,asp.net-mvc,asp.net-mvc-3,C#,Asp.net Mvc,Asp.net Mvc 3,我的Global.asax.cs中有此应用程序错误事件,它将获取应用程序中发生的任何未经处理的异常。我能够得到错误信息。我试图得到的也是异常发生的类名和方法名,以便更容易跟踪异常发生的位置和原因。请帮忙 Global.asax.cs protected void Application_Error(object sender, EventArgs e) { var errMsg = Server.GetLastError().Message; if (st

我的Global.asax.cs中有此应用程序错误事件,它将获取应用程序中发生的任何未经处理的异常。我能够得到错误信息。我试图得到的也是异常发生的类名和方法名,以便更容易跟踪异常发生的位置和原因。请帮忙

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在调用堆栈中找到此信息,请参见中的示例

最简单的方法是记录:

Server.GetLastError().ToString()
这包括异常和任何内部异常的错误消息和堆栈跟踪,在某些情况下还包括其他有用信息(*)

请注意,
Server.GetLastError().StackTrace
只会提供外部异常的堆栈跟踪,不太有用


(*)通过“其他有用信息”,我的意思是任何异常派生类都可以重写
ToString
,以添加特定于该异常类型的附加信息。例如,重写
ToString
以附加
ClientConnectionId

var errMsg=Server.GetLastError().StackTrace可能就是你要找的。