错误类型
- Error - 表示普通错误类型,6中错误都继承此对象
- EvalError - 已经弃用,低版本还能使用
- RangeError - 数值超出范围,如 new Array(-1);
- ReferenceError - 引入了不存在的变量,如 var a = 1; a += min;
- SyntaxError - 解析语法错误
- TypeError - 变量或参数不是预期变量,如调用了不存在的函数
- URIError - 解析URI编码错误,调用encodeURI(),escape()等URI处理函数时出现
异常调试
try {
//执行代码
} catch(e) {
//执行代码出错,执行此代码块
}
//------------------------
//example
try {
add1(); //错误3
} catch(e) {
console.log(e);//打印错误类型
}
function add1() {
add2(); //错误2
console.log('test');
}
function add2() {
var s = {};
s.func(); //错误1
}
执行结果可以看出错误输出依次向上,错误顺序为 s.func(),add2(), add1(),且没有输出test字符串,这说明当有错误出现时,会停止执行 try 代码块,而会执行 catch 代码块。
手动抛出错误
try {
var s = new Error('错误');
throw s;
} catch(e) {
console.log(e);
}
手动调试
error对象只能解决语法层面的错误,有时需要使用浏览器来进行手动调试,解决逻辑错误。
//求a加b的和
function add(a, b) {
//返回a和b的乘积
return a * b;
}
如上面代码,就出现了逻辑错误,使用Error对象并不能检查出来,那么此时就会使用浏览器调试。
F12 打开调试窗口,转到 Sources 栏,top下面就是服务器地址,127.0.0.1是本机地址,冒号后面是端口号。
在右侧有你编写的html文档,点击一下行号就能设置断点,通过检查断电来测试错误。