javascript - 即使在 try 中有错误,catch 也不会被触发

标签 javascript jquery json try-catch

我的尝试中有一个 $.getJSON() 调用抛出错误,但未触发捕获。什么都没有发生。只是控制台中的错误。

这是为什么?

我想做的是在加载 JSON 时做一些事情,如果请求失败或错误则做其他事情。

这是我的代码:

try{
    $.getJSON('https://www.googleapis.com/freebase/v1/search?query=&filter=(all+type%3A%22nominated%20works+exhibited_at%3A%222012%20grammy%27s%22)&indent=true', function(searchJSON){
        alert('sucesss!');
    });
}
catch(e){
    alert('failure: '+e);
}

这是 jsfiddle 的链接:http://jsfiddle.net/sgeg56c3/

最佳答案

你的回调函数是异步的,而你的 try/catch block 是同步的。当您的异步回调完成时,try/catch block 可能已经完成。

由于异常是同步处理的,因此您需要使用不同的方法来处理错误。

我推荐阅读 Asynchronous Error Handling in Javascript

关于javascript - 即使在 try 中有错误,catch 也不会被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27475146/

相关文章:

javascript - 提取关注 html 的所有内联 css

ios - swiftyjson 从 json 数组中获取字符串

html - JsonML 中如何表示未闭合的标签?

java - 持久的 JSON 内容

javascript - HTML/Javascript 已禁用,然后重新启用复选框已发布

Javascript 不执行对象方法

javascript - 获取 : post json data, application/json 更改为 text/plain

javascript - 从多个 getJSON 响应返回对象

jquery - 如何在div中打洞?

jquery - 澄清 jQuery "wrapper"对象