正确的方法来从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); });