1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 </head> 7 <body> 8 <script> 9 function aa(str){ 10 var p = new Promise(function(resolve,reject){ 11 var cc = JSON.parse(str); 12 resolve(cc); 13 // reject(JSON.parse(str)); 14 }); 15 return p; 16 } 17 var bb = '["xxx","bbbbb"]'; 18 aa(bb).then(function(b){ 19 console.log(b); 20 }).catch(function(err){ 21 console.log(err); 22 }) 23 </script> 24 </body> 25 </html>
對於JSON.parse的異常處理一般大家只是嚴格處理json字符串,字符串本身必須帶引號,數組的話,數組每一項必須帶引號,對象的話,對象的鍵值都必須帶雙引號;
所以如果客戶端傳來的字符串不正確,JSON.parse()會報錯,使程序出現異常;從而使程序退出;
這是需要一個程序捕獲異常,讓程序能正常運行下去;
這里運用了promise捕獲異常的方法;
promise對象的catch方法會自動捕獲異常程序;不用設置reject回調;