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