1

我在页面加载事件中调用了方法 DoSomething():

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        DoSomething();        
    }
    catch
    {
        Server.Transfer('~/Error.aspx');
    }
}

现在的问题是如果某些条件不满足,同时如果我DoSomething也抛出异常,那也会做一个. 现在我在浏览器中显示重复的错误页面。我该如何阻止这个?我希望无论我写5 次,它都应该只显示一次错误页面,而不是在 1 页中显示重复页面。Server.TransferError.aspxPage_LoadServer.Transfer



Server.Transfer

4

1 回答 1

1

嗯.. DoSomthing() 应该返回一个布尔值,告诉您它是否已经发出服务器传输?

protected void Page_Load(object sender, EventArgs e)
{
    bool serverTransferToErrorPage;
    try
    {
    serverTransferToErrorPage = DoSomething();
    // some more code that may throw execpetions..
         // ...
         // ...
    }
    catch
    {
    if(!serverTransferToErrorPage)
        Server.Transfer('~/Error.aspx');
    }
}

当然,您的“DoSomthing()”方法应该看起来像这样:

private bool DoSomthing()
{
   try
   {
      return false;
   }
   catch
   {
      Server.Transfer('~/Error.aspx');
      return true;
   }
}
于 2013-02-13T06:24:22.303 回答