JavaScript 有哪些错误类型? 下面本篇文章就来给大家简单介绍一下 JavaScript 中的错误类型, 希望对大家有所帮助.
ECMA-262 定义了下列 7 种错误类型, 简单说明如下:
Error: 普通异常. 通常与 throw 语句和 try/catch 语句一起使用. 利用属性 name 可以声明或了 解异常的类型, 利用 message 属性可以设置和读取异常的详细信息.
EvalError: 在不正确使用 eval() 方法时抛出.
SyntaxError: 抛出语法错误.
RangeError: 在数字超出合法范围时抛出.
ReferenceError: 在读取不存在的变量时抛出 .
TypeError: 当一个值的类型错误时抛出该异常.
URLError: 由 URL 的编码和解码方法抛出.
其中 Error 是基类, 其他错误类型都继承自该类型. 因此, 所有错误类型共享了一组相同的属性, 错误对象中的方法全是默认的对象方法. Error 类型的错误很少见, 如果有也是浏览器抛出的, 这个基类 型的主要目的是供开发人员抛出自定义错误.
EvalError 类型的错误会在使用 eval() 函数发生异常时被抛出.
- // 如果没有把 eval() 当成函数调用, 就会抛出该类型错误.
- new eval(); // 抛出 EvalError
- eval=foo; // 抛出 EvalError
RangeError 类型的错误会在数值超出相应范围时触发. JavaScript 中经常会出现这种范围错误.
- // 在定义数组时, 如果指定了数组不支持的项数, 如 - 20 或 Number.MAX VALUE, 就会 触发这种错误.
- var itemsl = new Array(-20); // 抛出 RangeError
- var itemsl = new Array (Number.MAX_VALUE); // 抛出 RangeError
在找不到对象的情况下, 会发生 ReferenceError.
- // 在访问不存在的变量时, 就会发生这种错误.
- var obj = x; // 在 x 并未声明的情况下抛出 ReferenceError
SyntaxError 表示语法类型错误, 当把语法错误的 JavaScript 字符串传入 eval() 函数时, 就会导致此类错误.
eval ("a ++ b") // 抛出 SyntaxError
Type Error 类型在 JavaScript 中会经常用到, 在变量中保存着意外的类型时, 或者在访问不存在的方法时, 都会导致这种错误. 错误的原因虽然多种多样, 但归根结底还是由于在执行特定类型的操作时, 变量的类型并不符合要求所致.
- // 最常发生类型错误的情况, 就是传递给函数的参数事先未经检查, 结果传入类型与预期类型不相符.
- var o = new 10; // 抛出 TypeError
- alert ("name" in true); // 抛出 TypeError
- Function.prototype.toString.call ('name'); // 抛出 TypeError
在使用 encodeURL() 或 decodeURL() 时, 如果 URL 格式不正确, 就会导致 URIError 错误. 这种错误也很少见, 因为这两个函数的容错性非常高.
来源: http://www.css88.com/qa/javascript/11716.html