Javascript Catch块不捕获错误

Javascript Catch块不捕获错误,javascript,facebook-javascript-sdk,Javascript,Facebook Javascript Sdk,我有这段代码,当我操作try块以使出现错误时,catch块不会捕获它们(例如Facebook SDK抛出的错误)。我对使用try-and-catch结构非常陌生,不知道如何处理facebook的错误 try{ window.fbAsyncInit = function() { FB.init({ appId : 'XXXXXXXXXXXX', xfbml : true, version

我有这段代码,当我操作try块以使出现错误时,catch块不会捕获它们(例如Facebook SDK抛出的错误)。我对使用try-and-catch结构非常陌生,不知道如何处理facebook的错误

try{

    window.fbAsyncInit = function() {
        FB.init({
          appId      : 'XXXXXXXXXXXX',
          xfbml      : true,
          version    : 'v2.7'
        });
        FB.AppEvents.logPageView();

    };

  (function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = $fbSource;  
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));

}catch(e){

    console.log('Error: '+e);

}

这是因为
try
块处于活动状态时不会抛出错误。当抛出错误时(稍后,当Facebook调用您的
fbAsyninit
函数时),代码早已退出
try


如果您想捕获这些错误,您需要在
fbAsyncint
回调中使用
try
块和/或以fbAPI指示的方式接收错误,因为大多数异步API(本质上)不能接收错误与
try/catch
兼容,这是因为
try
块处于活动状态时不会抛出错误。当抛出错误时(稍后,当Facebook调用您的
fbAsyninit
函数时),代码早已退出
try


如果您想捕获这些错误,您需要在
fbAsyncint
回调中使用
try
块和/或以fbAPI指示的方式接收错误,因为大多数异步API(本质上)不能接收错误与
try/catch

兼容向我们显示导致抛出错误的确切位置。
catch
块仅捕获抛出的错误,而不是facebook错误?它不会捕获异步问题向我们显示导致抛出错误的确切位置。
catch
块仅捕获抛出的错误,不是facebook错误?它不会捕获异步错误issues@JuliusS.:对于任何一款模糊现代的浏览器,您都可以在加载Facebook时使用
onerror
回调,可能还需要一个
onload
,如果在合理的时间内看不到,则需要一个超时。@JuliusS:我所依赖的评论似乎已被删除,但希望上面的内容有用。@JuliusS:对于任何模糊的现代浏览器,您都可以在用于加载Facebook的浏览器上使用
onerror
回调,如果您在合理的时间范围内看不到,可能还会有一个
onload
和一个超时。@JuliusS:我所依赖的注释似乎已被删除,但希望上面的内容有用。