ASP.NET UserControl OnError

5

ASP.NET(4.0)中的用户控件继承自System.Web.UI.UserControl。VisualStudio智能感应建议使用OnError作为TemplateControl的有效覆盖。但在运行时,.NET会忽略此错误处理。只有Page-Level上的OnError被调用。我错过了什么或者是设计问题吗?

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

可能相关:http://stackoverflow.com/questions/341417/handling-web-user-control-error-on-asp-net-page - Deniz Dogan
@deniz dogan:我无法在控件外部使用错误处理。它需要是一个内部回退。在OnInit中也不可能附加到错误事件。 - Michael Piendl
2个回答

2

1

为什么要重写 OnError 方法?使用 try/catch 块或订阅 Application_Error 事件可能更好。


因为你需要在每个操作中都包含try/catch语句。如果你使用的是OnError,它应该会自动通知你任何问题。当你知道哪些错误可能导致异常并且知道如何处理这种情况时,try/catch是适用的。 - Sonic Soul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接