如何在asp.net应用程序中捕获未处理的异常?

时间:2012-06-10 11:40:43

标签: asp.net .net

在.NET考试中,我遇到了这个问题。

您可以使用以下哪种方法来捕获应用程序中未处理的异常?

  • SERVER_ERROR
  • Page_Error事件
  • 的Application_Error
  • Response_Error
  • OnError事件

我知道它的Application_Error,但我想知道的是其他什么。通过一些谷歌搜索,我发现OnError可用于捕获任何错误。我仍然不确定。你能说出捕捉未处理异常的其他方法吗

1 个答案:

答案 0 :(得分:8)

捕获未知错误的正确点是Application_Error

避免在页面上捕获OnError,并让系统将其转移到Application_Error,因为您已经失去了对页面的控制,那么如果不将其传输到某个错误页面,您可以做些什么呢? - 如果你试图重新加载它,你就会遇到可能导致堆栈溢出的闭环问题。

根据我的经验,当我尝试使用页面OnError处理错误时我遇到了问题,并且只有当我必须释放一些全局内存时才会使用它,或者如果页面上发生错误则会使用它。

要提供摘要,请尝试捕获try / catch块中的所有错误,并向用户发送消息/或者只是处理此问题,但将未知错误传递给全局捕获程序以记录它和修理它。未知错误会使您失去对程序的真正控制,实际上您不知道该怎么做因为您没有预测它 - 所以记录下来并在下次修复它

有关错误的更多详细信息: How do I make a "generic error" page in my ASP.NET application so that it handles errors triggered when serving that page itself?