在.NET考试中,我遇到了这个问题。
您可以使用以下哪种方法来捕获应用程序中未处理的异常?
我知道它的Application_Error,但我想知道的是其他什么。通过一些谷歌搜索,我发现OnError可用于捕获任何错误。我仍然不确定。你能说出捕捉未处理异常的其他方法吗
答案 0 :(得分:8)
捕获未知错误的正确点是Application_Error
。
避免在页面上捕获OnError,并让系统将其转移到Application_Error,因为您已经失去了对页面的控制,那么如果不将其传输到某个错误页面,您可以做些什么呢? - 如果你试图重新加载它,你就会遇到可能导致堆栈溢出的闭环问题。
根据我的经验,当我尝试使用页面OnError
处理错误时我遇到了问题,并且只有当我必须释放一些全局内存时才会使用它,或者如果页面上发生错误则会使用它。
要提供摘要,请尝试捕获try / catch块中的所有错误,并向用户发送消息/或者只是处理此问题,但将未知错误传递给全局捕获程序以记录它和修理它。未知错误会使您失去对程序的真正控制,实际上您不知道该怎么做因为您没有预测它 - 所以记录下来并在下次修复它