标签:错误记录 arguments mes php 类型 js开发 有用 ++ win
1 错误类型
try { someFunction(); } catch (error) { if (error instanceof TypeError) { // c处理类型错误 } else if (error instanceof ReferenceError) { // 处理引用错误 } else { // 处理其他类型错误 } }
2.与try-catch语句相配的还有一个throw操作符,用于随时抛出自定义的错误
function process(values) { if (!(values instanceof Array)) { throw new Error("process():argument must be an array");//自定义错误的类型 } values.sort(); for (var index = 0; index < values.length; index++) { if (value[i] > 100) { return values[i]; } } return -1; }
在js开发中尽量关注函数和可能导致函数执行失败的因素
3. 任何没有通过try-catch处理的错误都会触发window对象的error事件。只能用DOM0级事件,即onerror接受3个参数:错误信息,错误所在的URL和行号(大多数情况下,只有错误信息有用)
4. 图像也支持error事件
// 图像支持error事件 var image = new Image(); image.addEventListener(‘error‘, function (event) { alert("image not load"); }, false); image.src = "smile.gif"; //指定不存在的图像
5 js中常见的错误类型
6.把错误记录到服务器上
集中保存错误日志,一边找到错误原因
// 记录错误到服务器 function logError(sev, meg) { //第一个参数说明表示错误的严重程度 meg值错误的类型自定义的信息 var img = new Image(); img.src = "log.php?sev=" + encodeURIComponent(sev) + "&meg=" + encodeURIComponent(meg); } var array = []; for (var index = 0; index < array.length; index++) { try { array[i].init(); } catch (error) { logError("nonfatal", "module init failed:" + error.message); } }
7.console对象具有下列方法:
8.// 一般对于大型程序 自定义错误都是通过assert()函数抛出
function assert(condition, message) { if (!condition) { throw new Error(message); } } // 运用 function divide(num1, num2) { assert(typeof num1 == "number" && typeof num2 == "number", "divide():both arguments must be numbers"); return num1 / num2; }
9. 当使用innerHTML和outerHTML以下列方法指定HTML时,就会发生未知运行错误(unknown runtime error):
标签:错误记录 arguments mes php 类型 js开发 有用 ++ win
原文地址:http://www.cnblogs.com/sundjly/p/7898836.html