最近,我有一个用户控件我正在开发抛出异常。我知道造成这种异常的原因,但这个问题让我思考。如果我有一个用户控件因任何原因抛出一个异常,我希望用其他东西替换那个usercontrol(例如一个错误说“对不起,这部分页面坏了。”)并且可能记录错误,会是什么这样做的好方法可以独立于用户控制或做什么(即我不是说用户控件做什么/是什么,因为我想要一个无关紧要的答案)。
代码示例:
<asp:TableRow VerticalAlign="Top" HorizontalAlign="Left">
<asp:TableCell>
<UR:MyUserControl ID="MyUserControl3" runat="server" FormatString="<%$ AppSettings:RVUC %>"
ConnectionString="<%$ ConnectionStrings:WPDBC %>" Title="CO" />
</asp:TableCell>
<asp:TableCell>
<UR:MyUserControl ID="MyUserControl4" runat="server" FormatString="<%$ AppSettings:RVUA %>"
ConnectionString="<%$ ConnectionStrings:WPDBA %>" Title="IEAO" />
</asp:TableCell>
</asp:TableRow>
答案 0 :(得分:0)
这里有两件事可以解决:
捕捉错误是非常直截了当的。它归结为尝试...抓住可能会引发错误的代码。
至于错误控制中的交换(在catch块中),有几种方法可以做到。
答案 1 :(得分:-1)
通用ID:对于ASP.NET,它可能有效(不确定ASP)
在渲染每个控件之前 - 记录它的id。
String CtrlID;
每个控件之前:
CtrlID = control.name
将所有内容放入try / catch(或对每个控件执行)
catch (Exception EX)
{
hide(ctrlId) (either set visible=false, or whatever suits you)
show(error message)
}