错误类型
在JavaScript中,共有7种标准错误类型,每个类型都对应一个构造函数。当发生错误时,JavaScript会根据不同的错误类型抛出不同的错误对象,具体如表1所示。
表1 错误类型
类型 | 说明 |
---|---|
Error | 表示普通错误,其余6种类型的错误对象都继承自该对象 |
EvalError | 调用eval()函数错误,已经弃用,为了向后兼容,低版本还可以使用 |
RangeError | 数值超出有效范围,如“new Array(-1)” |
ReferenceError | 引用了一个不存在的变量,如“var a = 1; a + b;”(变量b未定义) |
SyntaxError | 解析过程语法错误,如“{ ; }”“if()”“var a = new;” |
TypeError | 变量或参数不是预期类型,如调用了不存在的函数或方法 |
URIError | 解析URI编码出错,调用encodeURI()、escape()等URI处理函数时出现 |
在通过try…catch来处理错误时,无法处理语法错误(SyntaxError)。如果程序存在语法错误,则整个代码都无法执行。例如,下面的代码就存在语法错误。
1 try {
2 var o = { ; }; // 语法错误
3 } catch(e) {
4 console.log(e.message);
5 }
在浏览器中执行,会出现“Uncaught SyntaxError: Unexpected token ;”的错误提示,即分号“;”造成了语法错误。如果在该行代码的前面还有其他代码,也不会执行。