0

我想将所有表单错误都扔到事件日志中。为此,我向 Application_Error 处理程序添加了代码,以将错误文本发送到事件日志。我想知道如何在不破坏页面生命周期的正常流程的情况下抛出异常以在 Application_Handler 中捕获。

我尝试简单地抛出ApplicationException:

throw new ApplicationException(String.Format("Http Request failed. {0}", userStatusErrorMessage));

它的工作原理是将错误详细信息添加到事件日志中,但引发异常的页面在引发错误后没有显示任何内容。它是空白的。

有任何想法吗?非常感激。谢谢你,周末快乐!

4

2 回答 2

3

如果是异常处理后页面还可以继续,那么最好远离全局。如果您想记录它,请将其记录在您捕获它的位置(如果您不使用第三方的记录框架,您仍然可以使用静态方法,因此您只需在处理程序中添加一行)。

将 global.asax 留给那些你没有抓到的人,并发送一个错误页面(500 表示“我搞砸了,我会尝试修复它,4xx 范围内的东西”你搞砸了,所以我无能为力这样做”——如果你不知道是他们的错,那是你的错;如果真的是他们的错,而你不知道,那是你不知道的错)。

于 2012-08-31T21:20:02.523 回答
2

在 global.asax 中处理异常意味着你不能继续“不破坏页面生命周期的正常流程”。当您想要记录异常然后重定向到配置的自定义错误页面时,这种方法很有意义。

如果您只想记录异常然后假装什么都没有发生,您必须捕获异常并在那里调用您的记录方法。但我建议反对它,因为用户应该可以看到异常。

于 2012-08-31T21:21:37.583 回答