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回调; |