【需求】
在使用UserControl时,有时我们要捕获其抛出的Exception Info,但使用UserControl的页面和UserControl是平级关系,所以页面不能直接捕获UserControl的异常.这时,就要为UserControl使用一个方法:OnError
【实现】
①UserControl的try……catch里,加入下面类似代码
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
protected void Page_Load(object sender, EventArgs e)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
try
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.LoadDefault();
}
catch(Exception AX)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//需要Create一个Class,继承EventArgs,以便我们把需要异常Info抛出去!
//这里我就不写了.
//本句抛出的异常没有附带任何信息.
this.OnError(new EventArgs());
}
}
②在页面使用该UserControl抛的Exception
前台:
<uc1:AX ID="AXzhz" runat="server" OnError="UserControl_AX_Error" />
:后台:
protected void UserControl_AX_Error(object sender, EventArgs e)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
//把e强制转换为你自己的EventArgs子类,再从e中提取Info
}
博客园→斧头帮少帮主