错误对象
包含有关错误的信息。 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