2010-06-01 97 views
1

我張貼一些幫助在這裏: Avoiding try/catch hell in my web pages避免的try/catch地獄控制

我已經加入,從我的所有頁面的公共基類的「覆蓋的OnError」,並可以確認它的工作原理通過在函數中放置一個斷點來正確地執行。但是,無論我做什麼,我仍然會向客戶傳播一個異常。這是我的問題: 1)我有一個Telerik網格控件,根據ComboBox的值進行更新。如果發生異常,並且我在try/catch塊中捕獲它,那麼一切都很好。 2)如果在ComboBox被更改但是沒有使用try/catch塊的情況下遇到異常,則會在OnError中捕獲錯誤。但是,現在我得到一個PageRequestManagerServerErrorException錯誤,只是在客戶端Ajax響應(Javacript)中彈出。

任何幫助?

回答

1

發生這種情況的原因可能有很多。首先,它可能是導致它的客戶端呈現的東西,或者它可能是來自更新面板或RadAjaxPanel的AJAX請求......一種可能告訴的方法是進入Sys.WebForms.PageRequestManager的endRequest事件,這是簡單討論在這裏:http://encosia.com/2007/07/18/how-to-improve-aspnet-ajax-error-handling/

所以錯誤可能不會圍繞具有try/catch塊的代碼區發生,但可以從Telerik的過程東西內因...

你能分享任何代碼/標記嗎?

謝謝。

+0

太棒了,JS中的PageRequestManager有效! 我現在有點困惑: 1)我注意到,我的OnError導致JS中的異常不同,而如果我使用Page_Error,異常在客戶端中正確顯示。我必須使用OnError或Page_Error將錯誤記錄到文件,但爲什麼OnError會更改異常。 2)我注意到,JS中的get_error()。消息還包含Exception類型的名稱。這顯示給客戶端的錯誤有點難看。我沒有看到排除例外類型的任何方法。編寫自定義JS來刪除不必要的文本的唯一方法是? – 2010-06-02 04:11:48

+0

1)我會驚訝地發現一個區別; Page_Error是事件處理程序,而OnError只是事件拋出的方法...您仍在調用base.OnError(e);在裏面? 2)字符串解析;無論是MS AJAX框架或JQuery或什麼的。 MS AJAX有一個String.StartsWith方法,你可以用來檢查某些錯誤,然後用substring或substr刪除文本..我知道,有點笨拙......也許正則表達式可以在這裏幫助實際... – 2010-06-04 11:36:13