From the moment you request a page in your browser to the moment you see a response on your screen a complex process takes place on the server. Your request travels through the ASP.NET pipeline.
When any exception is thrown now—be it a general exception or a 404—it will end up in Application_Error. We can trap errors and display friendly meaningful messages to users by following method..
void Application_Error(object sender, EventArgs e)
{
// At this point we have information about the error
HttpContext ctx = HttpContext.Current;
Exception exception = ctx.Server.GetLastError();
string errorInfo = "Offending URL: " + ctx.Request.Url.ToString() +" Source: " + exception.Source +
" Message: " + exception.Message +" TARGETSITE: " + exception.TargetSite +" Stack trace: " + exception.StackTrace;
ctx.Response.Write(errorInfo);
if (exception is HttpException && ((HttpException)exception).GetHttpCode() == 404)
{
string strurl = ctx.Request.Url.ToString();
strurl = strurl.Substring(strurl.ToLower().IndexOf("account"));
strurl = strurl.Substring(0, strurl.IndexOf("/"));
if (strurl.ToLower() == "account")
{
// To let the page finish running we clear the error
ctx.Server.ClearError();
ctx.Response.Redirect("a.html");
}
else
{
// To let the page finish running we clear the error
ctx.Server.ClearError();
ctx.Response.Redirect("b.html");
}
}
else
{
// To let the page finish running we clear the error
ctx.Server.ClearError();
ctx.Response.Redirect("c.html");
}
}
When any exception is thrown now—be it a general exception or a 404—it will end up in Application_Error. We can trap errors and display friendly meaningful messages to users by following method..
void Application_Error(object sender, EventArgs e)
{
// At this point we have information about the error
HttpContext ctx = HttpContext.Current;
Exception exception = ctx.Server.GetLastError();
string errorInfo = "Offending URL: " + ctx.Request.Url.ToString() +" Source: " + exception.Source +
" Message: " + exception.Message +" TARGETSITE: " + exception.TargetSite +" Stack trace: " + exception.StackTrace;
ctx.Response.Write(errorInfo);
if (exception is HttpException && ((HttpException)exception).GetHttpCode() == 404)
{
string strurl = ctx.Request.Url.ToString();
strurl = strurl.Substring(strurl.ToLower().IndexOf("account"));
strurl = strurl.Substring(0, strurl.IndexOf("/"));
if (strurl.ToLower() == "account")
{
// To let the page finish running we clear the error
ctx.Server.ClearError();
ctx.Response.Redirect("a.html");
}
else
{
// To let the page finish running we clear the error
ctx.Server.ClearError();
ctx.Response.Redirect("b.html");
}
}
else
{
// To let the page finish running we clear the error
ctx.Server.ClearError();
ctx.Response.Redirect("c.html");
}
}
No comments:
Post a Comment