出于某种原因,这段代码给了我一个未捕获的异常错误。似乎 catch 块没有捕获错误。try catch 块的作用域是不是我不能在嵌套函数中抛出错误,然后期望它被作用域更高的 catch 语句捕获?我正在使用的应用程序中的一些敏感数据已被删除,但它预计leadInfo [0 / 1] 将是我从URL 参数中提取的32 个字符的字母数字字符串。
这里的根本问题是我的 AJAX 调用从 API 返回一个错误,并且该错误在应用程序中没有得到正确处理。因此需要 throw 语句。AJAX 调用可以正常完成,并返回一个不包含电子邮件地址作为属性的 JSON 对象,因此我需要以更改页面以反映这一点的方式来处理它。
jQuery(document).ready(function(){
try {
url = "http://api.com/api/v1/lead/" + leadInfo[1]
jQuery.ajax({
type: 'GET',
contentType: 'application/json',
url: url,
dataType : 'jsonp',
success: function (result) {
result = jQuery.parseJSON(result);
if(!result.data.email){
throw ('New exception');
}
console.log(result);
jQuery('.email').html(result.data.email);
}
});
jQuery('.surveryButton').click(function(){
window.location.replace("http://" + pgInventory.host + pgInventory.path + leadInfo[0] + "&curLeadId=" + leadInfo[1] + "&curViewedPages=0");
});
}
catch(err) {
jQuery('.email').html('your e-mail address');
jQuery('#arrowContent').remove();
}
});