在 .NET 考试中,我遇到了这个问题。
您可以使用以下哪项来捕获应用程序中未处理的异常?
- 服务器错误
- Page_Error
- 应用程序错误
- Response_Error
- OnError 事件
我知道它的 Application_Error,但我想知道其他的是什么。通过一些谷歌搜索,我发现 OnError 可用于捕获任何错误。我仍然不确定。你能告诉我捕捉未处理异常的其他方法吗
捕获未知错误的正确点是Application_Error
.
避免捕获页面上的OnError,让系统将其转移到Application_Error,因为您已经失去了对页面的控制,那么如果不将其转移到某个错误页面,您还能做什么呢?- 如果您尝试重新加载它,您会遇到可能导致堆栈溢出的闭环问题。
根据我的经验,当我尝试使用页面处理错误时遇到问题,OnError
并且只有在我必须释放一些全局内存时才使用它,或者如果页面上发生错误则类似的情况。
总结一下,尝试在 try/catch 块中捕获所有错误,并向您的用户发送消息/或只是处理此问题,但让全局捕获器记录并修复未知错误。未知错误会让你失去对程序的真正控制,实际上你不知道该怎么做,因为你没有预测它 - 所以记录它并在下次修复它
有关错误的更多详细信息: 如何在我的 ASP.NET 应用程序中创建一个“通用错误”页面,以便它处理在提供该页面本身时触发的错误?