从用户控件中的页面捕获异常

时间:2011-05-09 23:30:32

标签: c# asp.net

用户控件是否可以捕获其父页面的Page.Error事件并记录该异常?

1 个答案:

答案 0 :(得分:2)

你可以这样做,但它不是最好的解决方案,它只有在事件被注册后发生错误才有效,这意味着在控件加载后,因为页面首先加载它不会捕获任何错误页面加载。更好的解决方案是使用global.asax中的Application_Error事件。

将此代码放入您的控件中:

protected void Page_Load(object sender, EventArgs e)
{
    Page.Error += new EventHandler(Page_Error);
}

void Page_Error(object sender, EventArgs e)
{
    Exception exception = Server.GetLastError();

    Response.Write(exception.ToString());

    HttpContext.Current.ClearError();
}