尝试使用addEventListener捕获

try...catch with addEventListener

本文关键字:addEventListener 捕获      更新时间:2023-09-26

尝试。。。catch块在来自window上注册的事件侦听器时不会捕获此错误。在Firefox、Chrome和Safari中也是如此
我意识到我可以包装函数的内容,但为什么它不能以这种形式工作?我希望用这种方式包装大量的代码,并默默地跟踪错误。

try{
    function onLoad(){
        var a = b;
    }
    //onLoad(); //This is caught
    window.addEventListener('load', onLoad, false); //This is not caught
}
catch(e){
    console.log("Catch: ", e);
}

发生这种情况是因为以下代码:

window.addEventListener('load', onLoad, false); //This is not caught

在页面加载后运行。此代码在try-catch块之后执行。要获得所需的行为,您必须使用window.onerror.

因为代码

window.addEventListener('load', onLoad, false)

只需调用将函数onLoad附加到窗口的"onLoad"事件,就不会引发任何错误,错误来自函数onLoad本身,您应该在该函数

中进行try-catch
相关文章:
  • 没有找到相关文章