Error in JavaScript
类似于 Java 语言中将异常(Exception)分为 CheckedException
和 RuntimeException
一样,ECMA262 定义 Error 分为“早期错误(early error)”与“运行时错误(runtime error)”。
“早期错误”意即能够在程序进行任意构造求值操作之前检测到并报出的错误,包含下面几类:
- 语法错误;
- 对同一个属性定义多个 setter 或多个 getter;
- 对同一个属性同时定义 value 和 setter/getter;
- 正则表达式语法错误;
- 严格模式中有 重复的属性赋值;
- 严格模式中使用 wi th 关键字;
- 独立严格模式下的 函数定义中具有重复的参数定义;
return
,break
和continue
的不合适使用;- 向非引用赋值
除了这些错误以外都属于运行时错误,不同的错误类型将会对程序带来一定的影响,例如:
<script>var i =0 j = 0;</script>
<script>
++i;
syntax error
</script>
<script>
++j;
throw new Error('runtime error');
</script>
<script>
console.log(i + '/' + j);//0/1
</script>
内建的 Error 包含下面几种类型:
- EvalError
- InternalError
- RangeError
- ReferenceError
- SyntaxError
- TypeError
- URIError