捕获外部脚本文件中的javascript错误

捕获外部脚本文件中的javascript错误,javascript,exception-handling,Javascript,Exception Handling,我有一点JavaScript(),当它被放到一个错误使用它的页面上时,可能会抛出一个异常,我正在尝试优雅地处理它 我有一个通用的window.onerror处理程序来解救这些错误并将它们报告回服务器,但是不会触发这些错误 我也不能用try/catch来包装这段代码,因为它是作为一个远程脚本包含在HTML中的 关于如何挽救外部脚本抛出的错误,您有什么想法吗 更新:以下是示例。我应该纠正自己,window.onerror确实会被触发,但是脚本不会继续运行(在本例中,警报从不发出警报) window

我有一点JavaScript(),当它被放到一个错误使用它的页面上时,可能会抛出一个异常,我正在尝试优雅地处理它

我有一个通用的window.onerror处理程序来解救这些错误并将它们报告回服务器,但是不会触发这些错误

我也不能用try/catch来包装这段代码,因为它是作为一个远程脚本包含在HTML中的

关于如何挽救外部脚本抛出的错误,您有什么想法吗

更新:以下是示例。我应该纠正自己,window.onerror确实会被触发,但是脚本不会继续运行(在本例中,警报从不发出警报)


window.onerror=函数(e){console.log(“捕获的错误:+e);返回true;}
load(“jquery”,“1.4.1”);
//此代码将在jquery工具中引发错误
$(“a[rel]”)overlay();
警惕(“没关系,我还在跑。”);

在加载/执行任何其他脚本之前定义错误处理程序

<script>window.onerror = function(e){}</script>
<script src="external.js"></script>
<script>
function ole(){alert("Hi!")}
ole();
</script>
window.onerror=函数(e){
函数ole(){alert(“Hi!”)}
ole();
如果脚本包含语法错误,则不会调用错误处理程序:

<script>window.onerror=function(e){alert("?")}
<script>
!@ //The error won't be caught.
</script>
window.onerror=函数(e){alert(“?”)}
!@ //错误不会被发现。

是否在抛出错误之前定义了
窗口。onerror
?如果没有,那就没用了。谢谢,我刚刚更新了问题。它实际上触发了onerror,但是控制流也停止了,而不是继续。这是意料之中的。该错误是由
$
引发的,没有被任何本地错误处理程序捕获。当抛出错误时,该行之后的任何代码都不会再执行(在本例中是在全局范围内定义的代码)。您在my Day中进行的年度最佳JavaScript黑客攻击x)自答案发布后,浏览器可能已更改-
窗口。OneError
现在开始捕获语法错误,至少在Chromewill中,requirejs加载的脚本中的错误也会被捕获到因为我不能。
<script>window.onerror=function(e){alert("?")}
<script>
!@ //The error won't be caught.
</script>