Error
普通异常可用性
JavaScript 1.5; JScript 5.5; ECMAScript v3
从…继承/覆盖
继承于 Object
构造函数
new Error( ) new Error(message)
参数
- message
-
提供异常的详细信息的错误消息,可选。
返回值
新构造的Error对象。如果指定了参数message,该Error对象将它作为message属性的值;否则,它将用实现定义的默认字符串作为该属性的值。如果把Error构造函数当作函数调用时不使用new运算符,它的行为与使用new运算符调用时一样。
属性
- message
-
提供异常详细信息的错误消息。该属性存放传递给构造函数的字符串,或实现定义的默认字符串。
- name
-
声明异常类型的字符串。对于Error类的实例和所有子类来说,该属性声明了用于创建实例的构造函数名。
方法
- toString( )
-
返回一个表示Error对象的字符串
描述
Error类的实例表示错误或异常,通常与throw语句和try/catch语句一起使用。属性name声明了异常的类型,message属性可提供人们能够读取的异常的详细信息。
JavaScript解释器从不直接抛出Error对象,而是抛出Error子类(如SyntaxError或RangeError)的实例。在代码中,你会发现抛出Error对象指示异常非常方便,或者也可以用原始字符串或数字的形式抛出错误消息或错误代码。
注意,ECMAScript标准为Error类定义了toString()方法(Error的所有子类都继 承了该方法),但并不要求该方法返回含有message属性的字符串。因此,不能期望 toString()方法可以把Error对象转换成人们可以读懂的字符串。要把错误消息显 示给用户,应该明确地使用Error对象的name属性和message属性。
示例
可以用下列代码指示一个异常:
function factorial(x) { if (x < 0) throw new Error("factorial: x must be >= 0"); if (x <= 1) return 1; else return x * factorial(x-1); }
如果捕捉到了一个异常,可以用下列代码把它显示给用户(这段代码使用了客户端 Window.alert()方法):
try { &*(&/* an error is thrown here */ } catch(e) { if (e instanceof Error) { // 判断是否为Error或子类的—个实例 alert(e.name + ": " + e.message); } }
参阅
EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError