Search code examples
c#asp.net.netexceptionhttpexception

Good idea to catch HttpException?


I have the following error in my output.aspx page sometimes:

Exception Details: System.Web.HttpException: Request timed out.

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:

[HttpException (0x80004005): Request timed out.]

Is it a good idea to catch this exception? Where do I do that as my output.aspx.cs has a Page_Load and that function calls RunTable(). Should I put a try catch block around that functions content?


Solution

  • catch exception at application level

        void Application_Error(object sender, EventArgs e)
    {
      // Code that runs when an unhandled error occurs
    
      // Get the exception object.
      Exception exc = Server.GetLastError();
    
      // Handle HTTP errors
      if (exc.GetType() == typeof(HttpException))
      {
        // The Complete Error Handling Example generates
        // some errors using URLs with "NoCatch" in them;
        // ignore these here to simulate what would happen
        // if a global.asax handler were not implemented.
          if (exc.Message.Contains("NoCatch") || exc.Message.Contains("maxUrlLength"))
          return;
    
        //Redirect HTTP errors to HttpError page
        Server.Transfer("HttpErrorPage.aspx");
      }
    
      // For other kinds of errors give the user some information
      // but stay on the default page
      Response.Write("<h2>Global Page Error</h2>\n");
      Response.Write(
          "<p>" + exc.Message + "</p>\n");
      Response.Write("Return to the <a href='Default.aspx'>" +
          "Default Page</a>\n");
    
      // Log the exception and notify system operators
      ExceptionUtility.LogException(exc, "DefaultPage");
      ExceptionUtility.NotifySystemOps(exc);
    
      // Clear the error from the server
      Server.ClearError();
    }