James123
James123

Reputation: 11652

redirect to error page when Exception occured in asp.net?

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

Answers (2)

Chris Rosete
Chris Rosete

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

Jakob Gade
Jakob Gade

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

Related Questions