日期:2014-05-16  浏览次数:20409 次

JS初学者,如何捕获页面异常、错误
本人是门外汉,求助:
有个页面,里面有很多JS代码,但都不是本人写,现在要求只要页面的JS有异常、错误,我就能捕获得到,不需要具体的错误是什么,只要有错就能捕获。
有人叫我用try...catch,但行不通,原因:引用JS文件太多,要从哪里try,总不能把所有的方法都try一次吧?

------解决方案--------------------

window.onerror = function() {
alert(“发生错误!”);
return true;}
------解决方案--------------------
探讨

window.onerror = function() {
alert(“发生错误!”);
return true;

------解决方案--------------------
是呀。浏览器本身不就有提示的功能吗?你用的是什么浏览器,会没有提示吗?
------解决方案--------------------
3楼+1
另外
window.onerror = function(e){
alert(e);
}
也可以提供一些信息。
------解决方案--------------------
try
{
代码段
}
catch(e){
alert("出错:"+e);
}
------解决方案--------------------
你的需求在现有的ie环境下显得有点矛盾,矛盾在:如果使用try-catch捕获到异常,那么ie是不会弹出调试器的

我觉得你的需求应该是:当不论发生什么页面错误时都提示用户js错了

如果是在ie下,为每个页面的document添加onerror事件,由于事件冒泡的,会捕获到<html>下所有的对象加载错误
------解决方案--------------------
探讨
window.onerror = function() {
alert(“发生错误!”);
return true;

------解决方案--------------------
debugger;在关键地方打上 断点 调试

然后用alert 弹出来
------解决方案--------------------
这要求有点BT,可以下载个DebugBar进行剖析了。。
------解决方案--------------------
嗯,学习了!

只是有点看天书的感觉,菜鸟啊,没有办法。。。。。。

(希望过段时间回来再看,就不再是天书了!)

------解决方案--------------------
try
{
执行代码;
}
catch(error)
{
捕获错误;
}
------解决方案--------------------
翻了下书:

下面的放header中
window.onerror=function(sMessage, sUrl, sLine){
alert( sMessage + sUrl+sLine +"\n");
........
return true;

}

在IE中,会执行所有并捕获所有,在FF中,只抓第一个,因为出错后不继续执行(但不知firebug如何处理的)

实际上就是错误事件句柄

try catch 是主动的