繁体   English   中英

如何在发生错误时继续执行javascript

[英]How to continue javascript execution when an error occurs

我在WP前端和后端都使用WP本机函数wp_enqueue_script()来加载所有脚本,因此它可以处理对同一脚本的重复调用,依此类推。

其中一个问题是其他程序员不使用这个函数并直接从他们的代码加载他们的脚本,这导致jQuery或jQuery-UI被加载两次,导致一堆错误。

另一个问题是我不拥有的代码会触发错误并在此之后停止执行JavaScript。

简而言之:

不属于我的代码中发生Javascript错误。
由于该错误,我的代码无法执行。
我希望我的代码绕过该错误并仍然执行。
有办法处理这些问题吗?

function ShieldAgainThirdPartyErrors($) {
    // Code you want protect here...
}

// First shot.
// If no error happened, when DOMContentLoaded is triggered, this code is executed.
jQuery(ShieldAgainThirdPartyErrors);

// Backup shot.
// If third party script throw or provoke an unhandled exception, the above function 
// call could never be executed, so, lets catch the exception and execute the code.
window.onerror = function () {

    ShieldAgainThirdPartyErrors(jQuery);

    return true;
}

如果你想在必要时拉动你的枪的两次触发器;)设置一个标志,表示第一次射击成功并避免备用镜头,我认为在某些情况下你的第一次射击可以执行甚至第三方代码进入麻烦并触发第二枪。

完全没有推荐但你可以使用:

try {  
  //Some code likely to throw an error  
} catch (err) {}

这将允许继续运行之后的任何事情,但您通常也应该捕获错误。 我不会发现错误的唯一情况是使用数组并进行somearray[i-1] ,其中i-1将小于0.这只是因为它比使用条件来防止它更干净。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM