2010-06-07 45 views
5

ASP.NET(4.0)中的UserControls繼承自System.Web.UI.UserControl。 VisualStudio intellisense建議OnError作爲TemplateControl的有效覆蓋。 .NET在運行時會忽略此錯誤處理。只有頁面級的OnError被調用。我錯過了什麼或者是否有設計問題?ASP.NET UserControl OnError

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

可能相關:http://stackoverflow.com/questions/341417/handling-web-user-control-error-on-asp-net-page – 2010-06-07 16:03:37

+0

@deniz dogan:我無法在控件外部使用錯誤處理。它需要成爲內部回退。它也不可能附加在OnInit中的錯誤事件上。 – 2010-06-07 16:13:07

回答

1

爲什麼要重寫OnError?您最好使用try/catch塊或訂閱Application_Error事件。

+1

可重用組件的錯誤處理? – 2010-10-24 15:42:27

+0

,因爲你需要在try/catch中包裝EVERY操作。如果你正在使用它,OnError應該會自動通知你任何問題。當你知道什麼錯誤可能導致異常以及如何處理這種情況時,try/catch是合適的。 – 2010-11-02 14:39:18