Javascript 处理断开JSON的错误
如果元素Javascript 处理断开JSON的错误,javascript,jquery,json,exception,Javascript,Jquery,Json,Exception,如果元素#json为空,则会导致此错误: 未捕获的语法错误:输入意外结束 对于以下代码: myJSON = JSON.parse($("#the-json").attr('value')); 如何处理此错误,使其不会停止整个脚本的工作?使用try-catch语句: try { myJSON = JSON.parse($("#the-json").attr('value')); } catch (e) { // handle error } 或在做某事之前检查: var myJSON
#json
为空,则会导致此错误:
未捕获的语法错误:输入意外结束
对于以下代码:
myJSON = JSON.parse($("#the-json").attr('value'));
如何处理此错误,使其不会停止整个脚本的工作?使用try-catch语句:
try {
myJSON = JSON.parse($("#the-json").attr('value'));
} catch (e) {
// handle error
}
或在做某事之前检查:
var myJSON = JSON.parse('{}'); // default value
if ($("#the-json").attr('value')) {
myJSON = JSON.parse($("#the-json").attr('value'));
}
而不是在错误发生时捕捉错误-首先要防止错误发生只需测试value属性,如果其为空,则显式指定为。那么JSON解析器就不会抱怨了——它只会创建一个空对象 您可以简单地测试空内容并提供空对象-
var data = $("#the-json").attr('value') == ''? '{}': $("#the-json").attr('value');
myJSON = JSON.parse(data);
if ($.isEmptyObject(myJSON)){
// there was no value
}
{}
语法意味着一个空的JavaScript对象。将所有JavaScript包装在try-catch中是一种好的做法吗?@ami-不是所有的代码。。。你可以预测可能出现的问题。