asp.net - 如何捕获在我的 ASCX 控件(而不是代码隐藏)上引发的异常?

标签 asp.net user-controls error-handling

我有一个包含许多 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/

相关文章:

c# - 如何使用 ASP.net 3.5 和 LINQ 将数据库分层数据转换为 XML

asp.net - 无论如何要在 iis 7 上模拟服务器繁忙错误 500.13 吗?

error-handling - 在Orchard中手动渲染ErrorPage形状

c# - 基于开始/结束位置的字符串中的粗体选择性文本

c# - 如何在 SQL Server 2008 中的表的 2 列中设置身份规范 YES

c# - WPF UserControl - Usercontrol DataGrid 的 SelectedItem 绑定(bind)到 UserControl 外的 DataGrid 的 ItemSource

javascript - 使用 JQuery 和 ASP.NET TextBox 控件来切换焦点

c# - 用户控件中的内容

php - PHP E_NOTICE最佳实践-检查未定义的var是否有值是否不好?

com - RDML 中是否有处理 COM 对象错误的方法?