教学之友,学习之友。

站长教学网

当前位置: 站长教学网 > 前端开发 > JS教程 >

如何获取Javascript中出错代码所在行数和文件(2)

时间:2012-03-29 15:54来源:未知 作者:ken 点击:

试验了一下,在Safari中的Error对象拥有如下属性:

  • message          —— 错误提示信息
  • line                  —— 出错代码所在行数
  • sourceId          —— 一个数字,不明白什么意思
  • sourceURL       —— 表示出错代码所在文件
  • name               —— 异常对象名/类型

Opera下的Error对象拥有如下属性:

  • message                —— 错误提示信息
  • opera#sourceloc    —— 出错代码所在行数
  • stacktrace             —— 出错堆栈信息

这两个浏览器中的Error对象已经提供了足够的信息给我们调试使用了。下面要做的就是把这两种方式结合起来,使之在不同浏览器下都能很好的汇报这些错误。

下面这段代码封装了在不同浏览器之上汇报异常的功能:From:站长教学网 Eduyo.com

<script type=”text/javascript”>
function reportError(err){
    var errMsg = [];
    for(var p in err){
        if(err.hasOwnProperty(p)){
            errMsg.push(p + "=" + err[p]);
        }
    }
    alert(errMsg.join("\n"));
}
function doSomething(){
    var lastErrorHandler = window.onerror;
    window.onerror = function(message, url, line){
        // 汇报错误
        reportError({
            message: message,
            url: url,
            line: line
        });
        window.onerror = lastErrorHandler;
        // 不希望此错误继续扩散
     return true;
    }

    // 不小心出错了...
    sldfjlskdjflj;

    window.onerror = lastErrorHandler;
}
try{
    // 执行可能出错的代码
   doSomething();
}catch(e){
    if("\v"=="v"){
        // 对于IE直接让此错误扩散到最外层
        throw e;
    }else{
        // 对于其他任意浏览器直接汇报此异常对象
        reportError(e);
    }
}
</script>
(责任编辑:ken)
TAG标签: js 错误 JavaScript 脚本 error
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容