0

我将简化示例,假设我们有Page A,Page BPage C

  1. Page A继续,base.OnInit()_page B
  2. Page B抛出异常并将被重定向Server.Transfer到 to Page C
  3. Page C有一个 try/catch,应该在其中捕获异常。

我一直在尝试Server.GetLastError(),没有带来任何东西(GetLastErros 为空)。你怎么能在添加<customErrors>的情况下解决它和处理web.config

有趣的是,当我在 中调试时Page C,我可以看到$exception设置正确的变量。

图片 -> http://www.picfront.org/d/8EeT

非常感谢。

4

2 回答 2

0

您是否在Web Page/Content Page/BasePage.

protected override void OnError(EventArgs e)
{
     base.OnError(e);
}

Application_ErrorGlobal.asax文件中使用了吗?

void Application_Error(object sender, EventArgs e)
{
      // Code that runs when an unhandled error occurs
}
于 2012-05-10T08:34:18.027 回答
0

您的Page C对Page B中的异常一无所知。在页面 B中引发的异常在此处处理。

我猜$exception您在Page C中看到的是此页面堆栈跟踪的非公开成员。

要让您的Page C充当通用错误处理程序,您必须交出有关异常的信息。您可以在查询字符串参数中执行此操作,但我怀疑这将是一个易于维护的解决方案。

也许使用母版页,提供通用事件处理程序可以提供更好的解决方案而不是专用页面,但我没有尝试过。

于 2012-05-10T08:19:35.553 回答