【发布时间】:2012-06-10 11:40:43
【问题描述】:
在 .NET 考试中我遇到了这个问题。
您可以使用以下哪项来捕获应用程序中未处理的异常?
- Server_Error
- Page_Error
- Application_Error
- Response_Error
- OnError 事件
我知道它的Application_Error,但我想知道其他的是什么。通过一些谷歌搜索,我发现 OnError 可用于捕获任何错误。我仍然不确定。你能告诉我捕捉未处理异常的其他方法是什么
【问题讨论】:
在 .NET 考试中我遇到了这个问题。
您可以使用以下哪项来捕获应用程序中未处理的异常?
我知道它的Application_Error,但我想知道其他的是什么。通过一些谷歌搜索,我发现 OnError 可用于捕获任何错误。我仍然不确定。你能告诉我捕捉未处理异常的其他方法是什么
【问题讨论】:
捕捉未知错误的正确位置是Application_Error。
避免捕获页面上的OnError,让系统将它转移到Application_Error,因为你已经失去了对页面的控制,那么如果不将它转移到某个错误页面,你还能做什么呢? - 如果您尝试重新加载它,您会遇到问题处于可能导致堆栈溢出的闭环中。
根据我的经验,当我尝试使用页面 OnError 处理错误时遇到问题,并且我仅在必须释放一些全局内存时使用它,或者在页面上发生错误时使用它。
总结一下,尝试在 try/catch 块中捕获所有错误,并向您的用户发送消息/或只是处理此问题,但让全局捕获器记录未知错误并修理它。未知错误会让你失去对程序的真正控制,实际上你不知道该怎么做,因为你没有预测它 - 所以记录它并在下次修复它
【讨论】: