即使尝试中有错误,也不会触发

时间:2014-12-14 23:00:41

标签: 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/

1 个答案:

答案 0 :(得分:2)

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

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

我建议阅读Asynchronous Error Handling in Javascript