小tips:ECMA-262定义的7种错误类型
七种错误类型如下:
- Error
- EvalError
- RangeError
- ReferenceError
- SyntaxError
- TypeError
- URIError
其中,Error是基类型(其他六种类型的父类型),其他类型继承自它。Error类型很少见,一般由浏览器抛出的。这个基类型主要用于开发人员抛出自定义错误。
new Array(-2); // 抛出RangeError(范围) // 错误信息为:RangeError: invalid array length(无效的数组的长度) // RangeError错误一般在数值超出相应范围时触发 var box = a; // 抛出ReferenceError(引用) // 错误信息为:ReferenceError: a is not defined(a是没有定义的) // ReferenceError通常访问不存在的变量产生这种错误 a $ b; // 抛出SyntaxError(语法) // 错误信息为:SyntaxError: missing ; before statement(失踪;语句之前) // SyntaxError通常是语法错误导致的 new 10; // 抛出TypeError(类型 ) // 错误信息为:TypeError: 10 is not a constructor(10不是一个构造函数) // TypeError通常是类型不匹配导致的 EvalError类型表示全局函数eval()的使用方式与定义的不同时抛出,但实际上并不能产生这个错误,所以实际上碰到的可能性不大。 在使用encodeURI()和decodeURI()时,如果URI格式不正确时,会导致URIError错误。但因为URI的兼容性非常强,导致这种错误几乎见不到。 alert(encodeURI('某某某'));