Error in JavaScript

类似于 Java 语言中将异常(Exception)分为 CheckedExceptionRuntimeException一样,ECMA262 定义 Error 分为“早期错误(early error)”与“运行时错误(runtime error)”。

“早期错误”意即能够在程序进行任意构造求值操作之前检测到并报出的错误,包含下面几类:

  1. 语法错误;
  2. 对同一个属性定义多个 setter 或多个 getter;
  3. 对同一个属性同时定义 value 和 setter/getter;
  4. 正则表达式语法错误;
  5. 严格模式中有 重复的属性赋值;
  6. 严格模式中使用 wi th 关键字;
  7. 独立严格模式下的 函数定义中具有重复的参数定义;
  8. returnbreakcontinue 的不合适使用;
  9. 向非引用赋值

除了这些错误以外都属于运行时错误,不同的错误类型将会对程序带来一定的影响,例如:

<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
参考