憨厚生

          ----Java's Slave----
          ***Java's Host***

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            165 隨筆 :: 17 文章 :: 90 評論 :: 0 Trackbacks
                在代碼的運行過程中,問題時有發生;如何優雅的處理的這些錯誤,現的很重要。總體來說問題分為2大類:
          系統級錯誤,簡稱為error,如語法錯誤;應用級錯誤簡稱為exception,如用戶輸入的數值不合法等。如何當
          前代碼不能處理此問題,則應該把此問題從當前運行環境中跳出,并把它交給上一級環境處理。這就用到了
          try{}catch(){}異常處理。
               問題的相關信息被封裝到一個對象里。在javascript中,常用Error對象來保存有關錯誤的信息。
          為了區別系統級錯誤和應用級錯誤,給Error錯誤增加type屬性(error/exception)。
              
               示例代碼如下:
          <script language="javascript">   
               function errorTest(){
                try{
                    var s;
                        alert(s.toString());
                 }catch(e){
                       var error=new Error();
                           error["type"]="error";
                           error["number"]="110";   
                           error["description"]=e["description"]
                           throw error;             
                 }
               }
             
               function exceptionTest(i){
                        try{
                            if(parseInt(i)>0)
                            {
                              var exception=new Error();
                                  exception["description"]="不能大于0";
                                  throw exception;
                            }
                        }catch(e){
                           var exception=new Error();
                               exception["description"]=e["description"];
                               exception["type"]="exception";
                               exception["number"]="120"; 
                               throw exception;
                        }
               }
              
              
               function test1(){
                 try{
                    errorTest();        
                  }catch(e){
                    if(e["type"]=="error"){
                      alert("系統級錯誤!");
                     }else{
                      alert("應用級錯誤!");
                     }
                  }
               }
              
               function test2(){
                 try{
                    exceptionTest(1);        
                  }catch(e){
                    if(e["type"]=="error"){
                      alert("系統級錯誤!");
                     }else{
                      alert("應用級錯誤!");
                     }
                  }
               }
              
               test1();
               test2();
          </script>
          以上代碼比較簡單,但是在代碼比較復雜的情況下,可以根據具體情況完善。用此異常框架處理起來流程比較清晰。  
          posted on 2008-09-01 13:21 二胡 閱讀(1057) 評論(2)  編輯  收藏 所屬分類: JS

          評論

          # re: 高效的javascript異常處理框架 2009-06-22 05:03 Daniel Hu
          這是我整理的
          javascript異常處理使用總結 http://www.daniel-journey.com/archives/63  回復  更多評論
            

          # re: 高效的javascript異常處理框架 2009-06-22 11:49 二胡
          @Daniel Hu
          根據你留的URL,看了你寫的文章.我認為你寫的比較全面.
          寫此文的時候,主要是JAVA異常處理我在工作用的教多,而JS用的不多,根據我在JAVA方面異常處理思想搬到了JS上.
            回復  更多評論
            

          主站蜘蛛池模板: 溧水县| 白玉县| 新宁县| 东港市| 富宁县| 科技| 兴宁市| 老河口市| 六枝特区| 汕尾市| 九龙坡区| 昌乐县| 信阳市| 灌云县| 深水埗区| 新巴尔虎左旗| 息烽县| 嘉荫县| 南江县| 烟台市| 阿合奇县| 新安县| 台南县| 三门县| 黑水县| 锦州市| 周口市| 长顺县| 定边县| 南通市| 芦溪县| 镇平县| 石首市| 安顺市| 元阳县| 砚山县| 岳阳市| 万安县| 安福县| 赤峰市| 新竹市|