Tag: try catch

jquery隐藏了简单的javascript错误

我在chrome和firefox中使用jQuery和flot。 当我处理我的代码时,我发现执行在诸如访问不存在的哈希结构之类的愚蠢内容上无声地失败。 感觉jQuery中有一些try {} catch {}逻辑让我看不到任何错误。 关于如何解决这个问题的任何指针,如果没有毯子hack-n-slash来隔离一个简单的bug在哪里? jshint并没有太大的帮助。 – 编辑 – 更多调试显示趋势。 我基本上找到了拼写错误(未定义的变量)并在对象属性存在之前提前获取它们。 使用.hasOwnProperty()有所帮助,但很麻烦。 我想我在某个地方看到了一个方便的实用程序来帮助简洁地测试深层结构。

Catch语句不会捕获抛出的错误

由于某种原因,此代码给了我一个未捕获的exception错误。 似乎catch块没有捕获错误。 尝试以一种方式尝试捕获块,以至于我不能在嵌套函数中抛出错误,然后期望它被一个范围更高的捕获语句捕获? 我正在使用的应用程序中的一些敏感数据已被删除,但它预计leadInfo [0/1]将是一个32字符的字母数字字符串,我从URL参数中提取。 这里的根本问题是我的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] + […]