错误对象
更新:2007 年 11 月
包含有关错误的信息。Error 构造函数有两种形式。
function Error([description : String ])
function Error([number : Number [, description : String ]])
参数
number
可选。分配到错误的数值,指定 number 属性的值。如果省略,则为零。description
可选。描述错误的简短字符串,指定 description 和 message 属性的初始值。如果省略,则为空字符串。
备注
Error 对象可以使用以上所示的构造函数来显式地创建。您可以在 Error 对象中添加属性,以扩展其功能。每当出现运行时错误,也会创建一个 Error 对象来对错误进行描述。
通常,Error 对象通过 throw 语句以及它将被 try...catch 语句捕获这一期望来引发。您可以使用 throw 语句将任何类型的数据当作错误来传递;throw 语句将不会隐式地创建 Error 对象。但是,通过引发 Error 对象,catch 块可以类似地处理 JScript 运行时错误和用户定义的错误。
Error 对象具有四项内部属性:错误说明(description 和 message 属性)、错误号(number 属性)和错误的名称(name 属性)。description 和 message 属性引用相同的消息;description 属性提供向后兼容性,而 message 属性符合 ECMA 标准。
错误号是一个 32 位的值。较高的 16 位字是设施代码,而较低的字才是真正的错误代码。若要读完实际的错误代码,请使用 &(按位与)运算符来将 number 属性与十六进制数字 0xFFFF 组合。
警告: |
---|
尝试在 ASP.NET 页中使用 JScript Error 对象可能会产生意外的结果。这是因为 ASP.NET 页的 JScript Error 对象与 Error 事件之间可能存在二义性。在 ASP.NET 页中处理错误时,要使用 System.Exception 类,而不使用 Error 对象。 |
说明: |
---|
只有 JScript 提供 Error 对象。由于它不是从 .NET Framework 类型派生的,所以其他公共语言规范 (CLS) 语言不能使用它。因此,当对参数和符合 CLS 的方法的返回类型进行类型批注时,请确保使用 System.Exception 数据类型,而不是 Error 对象。然而,可以使用 Error 对象对标识符(而不是参数或返回类型)进行类型批注。有关更多信息,请参见编写符合 CLS 的代码。 |
示例
下面的示例阐释 Error 对象的用法。
try {
// Throw an error.
throw new Error(42,"No question");
} catch(e) {
print(e)
// Extract the error code from the error number.
print(e.number & 0xFFFF)
print(e.description)
}
该代码的输出为:
Error: No question
42
No question