2010-06-01 92 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