如何获取生成异常的文件名。
离。 addUser.aspx
try
{
SaveUser();
}
catch (Exception ex)
{
response.wrhite(ex.GETPAGE().toString());
}
return addUser.aspx;
答案 0 :(得分:1)
不完全是文件,ex.Source
可以使用class
。
您可以使用HttpContext.Current.Request.Url
访问当前请求的网址。
答案 1 :(得分:1)
对于ASP.NET中的C#,您可以在Global.asax中的Application_Error事件期间通过Request对象获取它。
protected void Application_Error(object sender, EventArgs e)
{
// some code here
String url = Request.Url.ToString()
// some more code here
}
答案 2 :(得分:1)
不幸的是,Exception
课程没有关于您要找的内容的任何信息。 As Yahia notes here,您可以从Exception获取类名,但正如您所发现的那样,这对查找ASPX路径没有帮助。
最好的办法是在异常处理程序中使用Request.Url.ToString()
方法,Graham notes。由于您的代码是从与您的页面相关的ASPX.cs内部运行的,因此可以使用Request
对象。
答案 3 :(得分:0)
这是一个UGLY-ASS答案,我不建议这样做:
StaceTrace具有页面文件名,如果异常来自实际页面(而不是项目中其他地方的DLL或其他类)。以下是本地抛出的简单页面和方法的痕迹:
at WebApp2.ExceptionPage.BlowUp() in C:\Users\gpeel\Desktop\Documents\Visual Studio 2010\Projects\GPTestBed\WebApp2\Exception.aspx.cs:line 27 at WebApp2.ExceptionPage.Page_Load(Object sender, EventArgs e) in C:\Users\gpeel\Desktop\Documents\Visual Studio 2010\Projects\GPTestBed\WebApp2\Exception.aspx.cs:line 16
您可以通过查找短语'.aspx.cs'的第一个实例来取出该文件名,然后在字符串中向左移动直到您到达第一个“\”字符。这将从上面给你“Exception.aspx.cs”。
我强烈建议您重新执行代码以解决Application_Error中的Exception对象,即使是global.asax也是如此。在该事件中调用 Server.GetLastError()。GetBaseException()以获取抛出的异常,并使用 Request.Url 来获取页面。