我的家園

          我的家園

          DWR異常處理

          Posted on 2012-04-01 16:46 zljpp 閱讀(3117) 評論(0)  編輯  收藏

          在本次項目中,由于時間緊張直接使用DWR做Ajax請求!要求的是動態展示,那就需要使用DWR輪詢請求,但是需要做異常情況下的一些處理!

           

          特別是DWR在遇到異常后,后臺不報錯,前臺也只提示一個 Error !如果是輪詢的話,那么就一直彈出 Error ,那誰收到了呀!

          對于DWR異常的處理,網上一大片都是這樣說的,在DWR配置中增加一個轉換器,將異常轉換為一般異常,這樣在前臺就不是提示 Error,而是提示具體的錯誤!想著這樣也可以接受,所以我記一下是怎么配置的。

          很簡單,在dwr.xml中增加一個轉換器:

          <convert converter="bean" match="java.lang.StackTraceElement" />
          <convert converter="exception" match="java.lang.Exception" />
           

          這樣前臺就會提示一些具體的異常信息,但是不會提示棧的信息的。不然我會更受不了的!

           

          其實對于我的請求來說,如果產生dwr異常,我不用做處理是最好的。因為在使用ajax前我會首先判斷網絡是否可用,然后在后臺把異常給處理好。所以要做的,就是處理掉dwr彈出提示內容!

          要做到這個也不難,那就是得到 engine.js 文件,然后在引用dwr這個公共文件時引用自己的文件。

          <script type='text/javascript' src='/dwr/dwr/engine.js'></script>

           

          改為:

          <script type='text/javascript' src='engine.js'></script>

           

          然后查詢下這個文件里面做彈出的內容,把彈出給注釋了,就這么簡單:

          就像下面一樣:

          /**
           * The default message handler.
           * @see getahead.org/dwr/browser/engine/errors
           
          */
          dwr.engine.defaultErrorHandler = function(message, ex) {
            dwr.engine._debug("Error: " + ex.name + ", " + ex.message, true);
            if (message == null || message == ""){} //alert("A server error has occured.");
            // Ignore NS_ERROR_NOT_AVAILABLE if Mozilla is being narky
            else if (message.indexOf("0x80040111") != -1) dwr.engine._debug(message);
            else{} //alert(message);
          };


          這樣dwr就算異常,也不會進行提示的,但是主要自己處理后臺可能發生的異常就行了!


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 高唐县| 三台县| 平陆县| 界首市| 连城县| 渝北区| 武义县| 巩留县| 沾益县| 龙游县| 江陵县| 龙门县| 合山市| 定西市| 恭城| 特克斯县| 灵台县| 西贡区| 黄大仙区| 固原市| 搜索| 连平县| 阿拉善左旗| 普安县| 咸丰县| 台北县| 桂东县| 荃湾区| 泉州市| 钟山县| 柯坪县| 泗阳县| 永兴县| 镇安县| 阳泉市| 库伦旗| 延吉市| 利津县| 延安市| 临漳县| 吕梁市|