0
開發人員使用VB.NET在ASP.NET中創建了一個自定義控件。自定義控件使用中繼器。在某些情況下,rpt_ItemDataBound事件遇到數據錯誤。我的目標是讓用戶看到死亡的黃色屏幕,而不是讓用戶更準確地解釋數據錯誤是什麼。我想我可以使用如下所示的Try/Catch塊來拋出異常,但是,看起來該事件無處被拋出並停止在「End Try」行執行。事件導致錯誤,但我無法捕捉到異常
Protected Sub rpt_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rpt1.ItemDataBound, rpt2.ItemDataBound
Try
ProcessBadData...
Catch ex As Exception
Throw ex
End Try
End Sub
在VB.NET中,我可以找到設置中繼器的DataSource的位置,但是我找不到DataBind事件。
任何想法如何捕捉在這個ASCX控制異常,所以我可以報告給用戶?
編輯:
堆棧跟蹤看起來是這樣的。中繼器中有另一個實際上導致錯誤(rptOther)的中繼器,我能夠捕獲錯誤,但我只能將它放到rpt_ItemDataBound中。我無法弄清楚如何在沒有DataBind事件的情況下調用rpt_ItemDataBound。
at Company.WebForms.Control.rptOther_ItemDataBound(Object sender, RepeaterItemEventArgs e)
at System.Web.UI.WebControls.Repeater.OnItemDataBound(RepeaterItemEventArgs e)
at System.Web.UI.WebControls.Repeater.CreateItem(Int32 itemIndex, ListItemType itemType, Boolean dataBind, Object dataItem)
at System.Web.UI.WebControls.Repeater.CreateControlHierarchy(Boolean useDataSource)
at System.Web.UI.WebControls.Repeater.OnDataBinding(EventArgs e)
at System.Web.UI.WebControls.Repeater.DataBind()
at Company.WebForms.Control.rpt_ItemDataBound(Object sender, RepeaterItemEventArgs e)
有沒有想過看看例外的StackTrace。感謝這個想法。 – proudgeekdad 2010-04-22 21:42:18