JS捕获错误

JS的错误捕获一般有下面两种方式:
1. 异常捕获常用方法是 try/catch/ throw /finally
2. 全局捕获window.onerror


1. try/catch/throw/finally

try{
  //可能捕获到的错误
 }catch(e){
  //捕获到错误后的处理
 }finally{
  //完成后执行的语句块
 }  // finally不是必须的

如果嵌套,两个catch不要使用同一个参数名,以免覆盖。
传入的参数是一个Error对象,可以从中得到错误信息。
FF支持一个try多个catch,因为Js为弱类型不推荐使用。

try{
  throw "error"  //表示扔出一个错误
}catch(e){
  console.log(e)  // error
}

2.全局捕获window.onerror
完整写法:

// 捕获全局错误onerror
  window.onerror = handleErr;
function handleErr(msg, url, line) {
    var errorTxt = "";
    errorTxt += "Error: " + msg + "\n";
    errorTxt += "Line: " + line + "\n";
    errorTxt += "Url: " + url + "\n";
    alert(errorTxt);
    return true;
}

msg: 错误信息
url: 发生错误的文件的url
line: 错误发生位置的行号
window.onerror还能处理SyntaxError,比try catch更强大。
但是onerror属于bom,所以各浏览器厂家对其的支持都不同。
如IE发生error时,正常的代码会继续执行;在FF中,代码将结束;Safari只支持Image的onerror事件处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值