【问题标题】:ASP.NET UserControl OnErrorASP.NET 用户控件 OnError
【发布时间】:2010-06-07 15:58:26
【问题描述】:

ASP.NET (4.0) 中的用户控件继承自 System.Web.UI.UserControl。 VisualStudio 智能感知建议 OnError 作为 TemplateControl 的有效覆盖。在运行时 .NET 会忽略此错误处理。只有页面级的 OnError 被调用。是我遗漏了什么还是存在设计问题?

public partial class Sample : System.Web.UI.UserControl
{
    protected override void OnError(EventArgs e)
    {
        // Never reach ;o)
        base.OnError(e);
    }
}

【问题讨论】:

  • @deniz dogan:我无法在控制之外使用错误处理。它需要是内部后备。也不可能在 OnInit 中附加错误事件。

标签: asp.net exception-handling user-controls


【解决方案1】:

啊.. 难以捉摸的 OnError

这个页面很好地说明了这个事件的内部运作:

http://weblogs.asp.net/vga/archive/2003/06/16/8748.aspx

可能是在触发 OnError 的情况下捕获了一些异常

【讨论】:

    【解决方案2】:

    为什么要覆盖 OnError?使用 try/catch 块或订阅 Application_Error 事件可能会更好。

    【讨论】:

    • 因为您需要将每个操作都包装在 try/catch 中。如果您正在使用它,OnError 应该会自动通知您任何问题。当您知道什么错误可能导致异常以及如何处理这种情况时,try/catch 是合适的。
    猜你喜欢
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 2010-09-06
    • 2011-07-10
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多