问题说明了所有内容,请使用此示例代码:
<ul id="css-id">
<li>
<something:CustomControl ID="SomeThingElse" runat="server" />
<something:OtherCustomControl runat="server" />
</li>
</ul>
现在如果在这些控件(位于母版页中)的某个位置抛出错误,它们将取消整个网站,如何捕获这些异常?
答案 0 :(得分:5)
您可以捕获Global.asax页面/类中其他地方未处理的所有异常。 看看:
protected void Application_Error(Object sender, EventArgs e)
方法
答案 1 :(得分:2)
不幸的是,未处理的异常将始终错误您的网站。 你可以通过几种方式防止这种情况。
最佳解决方案
答案 2 :(得分:1)
添加global.asax zh_cn实现Application_Error处理程序。使用Server.GetLastError()函数获取抛出异常的句柄。
答案 3 :(得分:1)
使用global.asax Application_Error方法,如How to create custom error reporting pages in ASP.NET by using Visual C# .NET。
中所述另一种方法是使用HTTP module;这为您提供了更多灵活性(例如,您可以处理来自多个应用程序的错误)。
答案 4 :(得分:1)
你想抓住异常并处理它吗?
或者你想阻止黄色死亡屏幕吗?如果您试图阻止黄色死亡屏幕,请查看处理Error
上的HttpApplication
事件(换句话说,在您的Global.asax中)。
有关详细信息,请参阅以下MSDN页面: http://msdn.microsoft.com/en-us/library/system.web.httpapplication.error.aspx
特别是这一段:
可以通过调用GetLastError方法来访问引发Error事件的异常。如果您的应用程序生成自定义错误输出,请通过调用ClearError方法来禁止ASP.NET生成的默认错误消息。