Javascript Catch块不捕获错误
我有这段代码,当我操作try块以使出现错误时,catch块不会捕获它们(例如Facebook SDK抛出的错误)。我对使用try-and-catch结构非常陌生,不知道如何处理facebook的错误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{
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:我所依赖的注释似乎已被删除,但希望上面的内容有用。