JS的错误捕获通常有下面两种方式:
1. 异常捕获经常使用方法是 try/catch/ throw /finally
2. 全局捕获window.onerrorjavascript
1. try/catch/throw/finallyjava
try{ //可能捕获到的错误 }catch(e){ //捕获到错误后的处理 }finally{ //完成后执行的语句块 } // finally不是必须的
若是嵌套,两个catch不要使用同一个参数名,以避免覆盖。
传入的参数是一个Error对象,能够从中获得错误信息。
FF支持一个try多个catch,由于Js为弱类型不推荐使用。浏览器
try{ throw "error" //表示扔出一个错误 }catch(e){ console.log(e) // error }
2.全局捕获window.onerror
完整写法:url
// 捕获全局错误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事件处理。对象