DNR
DNR

Reputation: 3746

Getting error "Internet Explorer cannot display the webpage" in asp.net

I have a code block that leads to a "Internet Explorer cannot display the webpage" error. When I click the submit button, with NONE of the radio buttons checked, the web page status bar displays "waiting for response from host" and then display the "Internet Explorer cannot display the webpage". When I walk through the code in visual studio, the code executes fine, and none of the catch blocks are executed.

enter image description here

How can I trap the error and determine why the error page is being displayed?

    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        try
        {
            if (rbtnSearchBy1.Checked)
            {
                Server.Transfer("ViewEmpHistory.aspx");
            }
            if (rbtnSearchBy2.Checked)
            {
                Server.Transfer("SearchEmp.aspx");
            }
            if (rbtnSearchBy3.Checked)
            {
                Server.Transfer("ViewEmpCard.aspx");
            }
        }

        catch (ThreadAbortException)
        {
            throw;
        }
        catch (Exception ex)
        {
            Response.Write(ex.ToString());
        }
    }

Upvotes: 1

Views: 4928

Answers (4)

CarryWise
CarryWise

Reputation: 51

What you've done is not exactly well structured. It's cleaner if the blocks are exclusive - which is why I've added the else statements to the code below. I've also indicated where you would want to handle the state where no button is checked in comments.

But you're right, there isn't any exception being thrown. Your code didn't throw one, and when you end processing a request without returning any type of response it doesn't cause an exception.

        if (rbtnSearchBy1.Checked)
        {
            Server.Transfer("ViewEmpHistory.aspx");
        }
        else if (rbtnSearchBy2.Checked)
        {
            Server.Transfer("SearchEmp.aspx");
        }
        else if (rbtnSearchBy3.Checked)
        {
            Server.Transfer("ViewEmpCard.aspx");
        }
        else
        {
          // Here's where the logic will flow to if no radio button is clicked.
          // We could 
          // * Server.Transfer to a default location
          // * Throw an exception
          // * Do nothing, which returns no response, and causes
          //   IE to complain that it could not display the webpage.
        }

Upvotes: 0

Troy
Troy

Reputation: 1669

Whatever .cs page your "btnSubmit_Click" is on, put a breakpoint on that page_load event.
Also, put a breakpoint on the page_load event of "ViewEmpHistory.aspx", "SearchEmp.aspx" & "ViewEmpCard.aspx". (so now you have four breakpoints).

Step through the project again and make sure all parameter values are being passed correctly, also make sure that you have correct logic (if applicable) for If (!PostbacK) conditions etc.

HTH

Upvotes: 1

dash
dash

Reputation: 91530

To debug these kind of issues, I often find it easier to use Tracing.

You can turn on tracing at the application level, or at the page level.

Your method call will then become:

protected void btnSubmit_Click(object sender, EventArgs e)
{
    try
    {
        if (rbtnSearchBy1.Checked)
        {
            Server.Transfer("ViewEmpHistory.aspx");
        }
        if (rbtnSearchBy2.Checked)
        {
            Server.Transfer("SearchEmp.aspx");
        }
        if (rbtnSearchBy3.Checked)
        {
            Server.Transfer("ViewEmpCard.aspx");
        }
    }
    catch(Exception ex)
    {
        Trace.Warn("Exception Caught", "Exception: btnSubmit_Click", ex);
    }
}

You can look at the trace log by then navigating to the Trace Viewer.

Upvotes: 1

Aghilas Yakoub
Aghilas Yakoub

Reputation: 29000

if you don't select one radiobutton it's normal that you don't enter in your catch , because your application no throw exception. but you can view your eventlog

Enter in your cmd : eventvwr to access your event log

enter image description here

Upvotes: 1

Related Questions