正确的方法来从JSON.parse中捕获exception

我对有时包含404响应的响应使用JSON.parse 。 在它返回404的情况下,是否有办法捕获exception,然后执行其他代码?

 data = JSON.parse(response, function (key, value) { var type; if (value && typeof value === 'object') { type = value.type; if (typeof type === 'string' && typeof window[type] === 'function') { return new(window[type])(value); } } return value; }); 

我发布到iframe的东西,然后用jsonparsing回读iframe的内容…所以有时它不是一个JSONstring

尝试这个:

 if(response) { try { a = JSON.parse(response); } catch(e) { alert(e); // error in the above string (in this case, yes)! } } 

你可以试试这个:

 var jsonString = "b"; try { a = JSON.parse(jsonString); } catch (e) { alert(e); // You get an error. } 

如果JSON.parse()的参数不能被parsing成JSON对象,这个承诺就不会解决。

 Promise.resolve(JSON.parse('{"key":"value"}')).then(json => { console.log(json); }).catch(err => { console.log(err); });