Reputation: 11652
I want redirect to error page when exception occured.
If the code is not handling try{}catch(Exception ex){}
in the page and if error occured in web application. Then I want redirect Error.aspx with Exception details to diplay.
I am already wrote code in Global.asax page like this.
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
' Code that runs when an unhandled error occurs
Dim str As String = CType(sender, HttpApplication).Context.Request.Url.ToString
Helper.ApplicationErrorHandler()
End Sub
Public Shared Sub ApplicationErrorHandler()
Dim ex As Exception
ex = HttpContext.Current.Server.GetLastError
Dim str As String = HttpContext.Current.Request.Url.ToString()
' filter out 404 responses
Dim httpException = TryCast(ex, HttpException)
If httpException IsNot Nothing AndAlso httpException.GetHttpCode() = 404 Then
Return
End If
If TypeOf ex Is HttpUnhandledException AndAlso ex.InnerException IsNot Nothing Then
ex = ex.InnerException
End If
If (ex IsNot Nothing) Then
Dim msg As String = String.Format("An unhandled exception occurred:{0}Message: {1}{0}{0} Stack Trace:{0}{2}", System.Environment.NewLine, ex.Message, ex.StackTrace)
Utility.SendEMail("[email protected]", System.Configuration.ConfigurationManager.AppSettings("ErrorEmailRecipient"), msg, "Labor Error")
End If
HttpContext.Current.Session.Add("Error", ex.Message)
HttpContext.Current.Server.Transfer("error.aspx")
End Sub
Still it is exception stopping at error place only. it is not redirecting to error page.
Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[NullReferenceException: Object reference not set to an instance of an object.]
Labor.AttributeProcess.Page_Load(Object sender, EventArgs e) in C:\Source Trunk\Labor\Labor\AttributeProcess.aspx.vb:23
System.Web.UI.Control.OnLoad(EventArgs e) +131
System.Web.UI.Control.LoadRecursive() +65
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2427
How to handle this? I want redirect to error page when ever exception occured even without try.. catch handle.
Upvotes: 0
Views: 3638
Reputation: 1258
The link suggested by Jakob Gade is not working anymore, so here is the answer if somebody have the same issue again like I did, copy the following code inside the Application_Error method inside the global.asax:
// After Handle the error. Clear It
Server.ClearError();
// Clear rendered. Just if needed
Response.Clear();
// Finally redirect, transfer
Response.Redirect("~/ErrorViewer.aspx");
Upvotes: 0
Reputation: 12419
Check out the customErrors Element in web.config. You can use it to configure your website to redirect to other pages when exceptions occour.
Upvotes: 2