我有一个包含许多 ASCX 控件的大型 ASPX 页面。如果控件抛出异常,它应该记录异常并只隐藏它自己。所有其他控件仍应呈现。
如何处理从前端文件(ASCX 而不是代码隐藏)引发的个别 ASCX 异常?例如:尝试使用 <%= MethodThatThrowsANullReferenceException() %>
引用无效属性的控件语法。
显然,在 Global.asax 中使用通用错误处理程序方法无法解决问题。我需要处理个别控件的异常。
最佳答案
让您的所有 UserControl 都继承自自定义基类,如下所示:
public class CustomUserControl : UserControl
{
protected override void Render(HtmlTextWriter writer)
{
try
{
base.Render(writer);
}
catch (Exception e)
{
writer.Write("Could not load control. Sad face.");
}
}
}
关于asp.net - 如何捕获在我的 ASCX 控件(而不是代码隐藏)上引发的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5663371/