【问题标题】:Avoid try/catch hell in my Telerik controls避免在我的 Telerik 控件中尝试/捕捉地狱
【发布时间】:2010-06-01 22:14:46
【问题描述】:

我在这里发布了一些帮助: Avoiding try/catch hell in my web pages

我在所有页面的公共基类中添加了一个“覆盖 OnError”,并且可以通过在函数中放置断点来确认它是否正常工作。但是,无论我做什么,我仍然会收到传播给客户端的异常。这是我的问题: 1) 我有一个 Telerik Grid 控件,它根据 ComboBox 的值进行更新。如果发生异常并且我在 try/catch 块中捕获它,那么一切都很好。 2) 如果我在 ComboBox 更改但没有使用 try/catch 块时遇到异常,则错误将在 OnError 中捕获。但是,现在我在客户端 Ajax 响应 (Javacript) 中弹出一个 PageRequestManagerServerErrorException 错误。

有什么帮助吗?

【问题讨论】:

    标签: asp.net error-handling telerik


    【解决方案1】:

    发生这种情况的原因可能有很多。一方面,它可能是客户端渲染导致它的原因,或者它可能是来自更新面板或 RadAjaxPanel 的 AJAX 请求......一种可能的判断方法是利用 Sys.WebForms.PageRequestManager 的 endRequest 事件,这里简要讨论:http://encosia.com/2007/07/18/how-to-improve-aspnet-ajax-error-handling/

    因此错误可能不会发生在具有 try/catch 块的代码区域周围,但可能是由 Telerik 进程内部的某些东西引起的......

    您能分享任何代码/标记吗?

    谢谢。

    【讨论】:

    • 太棒了,JS 中的 PageRequestManager 有效!!我现在有点困惑:1)我注意到我的 OnError 导致 JS 中的异常不同,而如果我使用 Page_Error,异常会正确显示在客户端中。我必须使用 OnError 或 Page_Error 将错误记录到文件中,但为什么 OnError 会更改异常。 2) 我注意到 JS 中的 get_error().message 还包含 Exception 类型的名称。这在向客户端显示的错误中有点难看。我没有看到任何排除异常类型的方法。是不是只有写自定义 JS 才能去掉不必要的文字?
    • 1) 我会惊讶地看到不同之处; Page_Error 是事件处理程序,而 OnError 只是引发事件的方法......您仍在调用 base.OnError(e);在里面? 2)字符串解析;使用 MS ajax 框架或 JQuery 之类的。 MS AJAX 有一个 String.StartsWith 方法,您可以使用它来检查某些错误,然后使用 substring 或 substr 删除文本。我知道,有点笨拙...也许正则表达式实际上可以帮助...跨度>
    猜你喜欢
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    相关资源
    最近更新 更多