JS捕获错误

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ZYY88886666/article/details/79964556

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事件处理。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页