gpt4 book ai didi

javascript - catch block 不会捕获错误

转载 作者:行者123 更新时间:2023-12-02 13:59:46 24 4
gpt4 key购买 nike

我有这段代码,当我操作 try block 以便发生错误时,catch block 不会捕获它们(例如 Facebook SDK 抛出的错误)。我对使用 try 和 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 block 处于事件状态时不会引发错误。当抛出错误时(稍后,当 Facebook 调用您的 fbAsyncInit 函数时),代码早已退出 try block 。

如果您想捕获这些错误,您需要在 fbAsyncInit 回调中有一个 try block 和/或接收错误FB API 指示的方式,因为大多数异步 API(本质上)无法与 try/catch 兼容。

关于javascript - catch block 不会捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40491198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com