捕获异常

捕获异常

问题描述:

的问题说的一切,借此示例代码取下整个网站,如何捕捉这些例外?捕获异常

您可以捕获Global.asax页面/类中未处理的所有异常。 看:

protected void Application_Error(Object sender, EventArgs e) 

方法。

+0

这将只是捕捉错误,它不会阻止它发生。除非您在该方法内采取纠正措施 – WebDude 2008-09-26 07:45:39

添加一个global.asax实现Application_Error处理程序。使用Server.GetLastError()函数获取抛出异常的句柄。

不幸的是,一个未处理的异常总是会使您的网站出错。 YOu可以通过几种方法防止这种情况。

  • 使用部分在你的web.config显示一个用户友好的消息
  • 在你的Global.asax - 或者自定义的处理器 - 抓住你的未处理的异常,并作出相应的反应 - like this

最佳解决方案

  • 确保您的控件不会抛出未处理的异常!

使用global.asax Application_Error方法,如How to create custom error reporting pages in ASP.NET by using Visual C# .NET中所述。

另一种方法是使用HTTP module;这给了你更多的灵活性(例如,你可以处理来自多个应用程序的错误)。

你想抓住异常并处理它吗?

或者你想阻止黄色死亡屏幕?如果您试图阻止黄色死亡屏幕,请参阅处理HttpApplication(换句话说,您的Global.asax)中的Error事件。

有关详细信息,请参见下面的MSDN页: http://msdn.microsoft.com/en-us/library/system.web.httpapplication.error.aspx

特别是这一段:

引发此错误事件可以通过向GetLastError函数方法的调用进行访问的异常。如果您的应用程序生成自定义错误输出,请通过调用ClearError方法来抑制ASP.NET生成的默认错误消息。