Asp.net AJAX JavaScript 基本类型扩展(4)——Error 类型及其扩展
2007-08-06 16:34
736 查看
参考:
JScript 语言参考
http://msdn2.microsoft.com/en-us/library/b8664205-d28e-4cde-bd76-69173ff72dea
Asp.net AJAX 在线文档
http://www.asp.net/AJAX/Documentation/Live/ClientReference/Global/JavascriptTypeExtensions/Erro
rTypeExt/default.aspx
Asp.net AJAX JavaScript Error 类型扩展
Sys Exceptions 异常参考
http://www.asp.net/AJAX/Documentation/Live/ClientReference/Global/JavascriptTypeExtensions/Erro
rTypeExt/ErrorArgumentFunc.aspx
argument 方法
创建 Sys.ArgumentException 异常!
argumentNull 方法
创建 Sys.ArgumentNullException 异常!
例:
function validateNumberRange(input, min, max)
{
// Verify the required parameters were defined.
if (input === undefined)
{
// Throw a standard exception type.
var err = Error.argumentNull("input", "A parameter was undefined.");
throw err;
}
else if (min === undefined)
{
var err = Error.argumentNull("min", "A parameter was undefined.");
throw err;
}
else if (max === undefined)
{
var err = Error.argumentNull("max", "A parameter was undefined.");
throw err;
}
else if (min >= max)
{
var err = Error.invalidOperation("The min parameter must be smaller than max
parameter.");
throw err;
}
else if (isNaN(input))
{
msg = "A number was not entered. ";
msg += String.format("Please enter a number between {0} and {1}.", min, max);
var err = Error.create(msg);
throw err;
}
else if (input < min || input > max)
{
msg = "The number entered was outside the acceptable range. ";
msg += String.format("Please enter a number between {0} and {1}.", min, max);
var err = Error.create(msg);
throw err
}
alert("The number entered was within the acceptable range.");
}
var input = undefined;
var min = -10;
var max = 10;
// Result: A thrown ErrorArgumentNull exception with the following Error object message:
// "Sys.ArgumentNullException: A parameter was undefined. Parameter name: input"
validateNumberRange(input, min, max);
argumentOutOfRange 方法
创建 Sys.ArgumentOutOfRangeException 异常!
argumentType 方法
创建 Sys.ArgumentTypeException 异常!
argumentUndefined 方法
创建 the Sys.ArgumentUndefinedException 异常!
create 方法
创建自定义的错误异常。
例:
function throwAnError(input)
{
if (input === undefined)
{
// Throw a standard exception type.
var err = Error.argumentNull("input", "A parameter was undefined.");
throw err;
}
else if (input === "Test1")
{
// Throw a generic error with a message.
var messageVar = "A test message.";
var err = Error.create(messageVar)
throw err;
}
else if (input === "Test2")
{
// Throw a generic error with a message and associated errorInfo object.
var messageVar = "This error contains an additional custom errorInfo object";
var errorInfoObj = { name: "SomeNamespace.SomeExceptionName", someErrorID: "436" };
var err = Error.create(messageVar, errorInfoObj);
throw err;
}
alert("No error occured.");
}
throwAnError("Test2");
invalidOperation 方法
创建 Sys.InvalidOperationException 异常!
notImplemented 方法
创建 Sys.NotImplementedException 异常!
parameterCount 方法
创建 the Sys.ParameterCountException 异常!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Sample</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="ScriptManager1">
</asp:ScriptManager>
<script type="text/javascript">
function throwAnError(a, b)
{
if (arguments.length !== arguments.callee.length)
{
// Throw a standard exception.
var err = Error.parameterCount("Invalid number of parameters
attempted.");
throw err;
}
alert("No error occured.");
}
// Result: A Thrown Sys.ParameterCountException with the following message:
// Error: Sys.ParameterCountException: Invalid number of parameters attempted.
throwAnError(1,2,3,4);
</script>
</form>
</body>
</html>
popStackFrame 方法
更改文件名和错误行属性代替产生错误原来的信息。只有你创建了自定义错误对象才可以用该方法。
例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="ScriptManager1">
</asp:ScriptManager>
<script type="text/javascript">
// Register classes to test.
Type.registerNamespace('Samples');
Samples.A = function(){}
Samples.A.registerClass('Samples.A');
Samples.B = function()
{
Samples.B.initializeBase(this);
}
Samples.B.registerClass('Samples.B');
// Test the type, create an Error in a function and return it.
function validate(testType, expectedType) {
if (!testType.isInstanceOfType(expectedType))
{
var e = Error.create("Invalid type.");
// Ensure that the Error tracks where it is
// thrown rather than where it was created.
e.popStackFrame();
return e;
}
}
// Cause validate() to create and return an error.
var a = new Samples.A();
var b = new Samples.B();
var err = validate(Samples.A, b);
if (err)
{
throw err;
}
alert("No error occured.");
</script>
</form>
</body>
</html>
Error 基本类型
Error 对象
保存有关错误的信息。
var newErrorObj = new Error(
)
var newErrorObj = new Error(
number
)
var newErrorObj = new Error(
number,
description
)
Error 对象的构造函数语法有以下部分:
参数
number
与错误相联的数字值。如果省略则为零。
description
描述错误的简短字符串。如果省略则为空字符串。
说明
每当产生运行时错误,就产生 Error 对象的一个实例以描述错误。该实例有两个固有属性保存错误的描述(
description 属性)和错误号(number 属性)。
错误号是 32 位的值。高 16 位字是设备代码,而低字是实际的错误代码。
Error 对象也可以用如上所示的语法显式创建,或用 throw 语句抛掉。在两种情况下,都可以添加选择的任
何属性,以拓展 Error 对象的能力。
典型地,在 try...catch 语句中创建的局部变量引用隐式创建的 Error 对象。因此,可以按选择的任何方
法使用错误号和描述。
下面的例子演示了隐式创建 Error 对象的使用:
try
{ x = y // 产生错误。
}catch(e){ // 创建局部变量 e。
response.write(e) // 打印 "[object Error]".
response.write(e.number & 0xFFFF) // 打印 5009。
response.write(e.description) // 打印 "'y' is undefined".
}
方法
Error 对象没有方法。
属性
description 属性 | number 属性
description 属性
返回或设置与特定错误相联系的描述字符串。
object.description [= stringExpression]
description 属性的语法组成部分如下:
参数
object
必选项。Error 对象的任意实例。
stringExpression
可选项。包含错误描述的字符串表达式。
说明
description 属性包含与特定错误相联系的错误信息字符串。使用包含在这个中的值,来警告用户发生了一
个不能或不想处理的错误。
下面的例子举例说明了 description 属性的使用:
try
x = y // 产生错误。
catch(var e){ // 创建局部变量 e。
document.write(e) // 打印 "[object Error]".
document.write((e.number & 0xFFFF)) // 打印 5009.
document.write(e.description) //打印 "'y' is undefined".
}
number 属性
返回或设置与特定错误相联系的数字值。Error 对象的默认是 number。
object.number [= errorNumber]
参数
object
任意 Error 对象的实例。
errorNumber
表示一个错误的整数。
说明
错误号是一个 32 位的值。高 16 位字是设施代码,而低字才是真正的错误代码。
下面的例子举例说明了 number 属性的用法:
try
x = y // 产生错误。
catch(var e){ // 创建全局变量 e。
document.write(e) // 打印 "[object Error]".
document.write(e.number>>16 & 0x1FFF) // 打印设施代码 10。
document.write(e.number & 0xFFFF) // 打印错误代码 5009。
document.write(e.description) // 打印 "'y' is undefined".
}
JScript 语言参考
http://msdn2.microsoft.com/en-us/library/b8664205-d28e-4cde-bd76-69173ff72dea
Asp.net AJAX 在线文档
http://www.asp.net/AJAX/Documentation/Live/ClientReference/Global/JavascriptTypeExtensions/Erro
rTypeExt/default.aspx
Asp.net AJAX JavaScript Error 类型扩展
Sys Exceptions 异常参考
http://www.asp.net/AJAX/Documentation/Live/ClientReference/Global/JavascriptTypeExtensions/Erro
rTypeExt/ErrorArgumentFunc.aspx
argument 方法
创建 Sys.ArgumentException 异常!
argumentNull 方法
创建 Sys.ArgumentNullException 异常!
例:
function validateNumberRange(input, min, max)
{
// Verify the required parameters were defined.
if (input === undefined)
{
// Throw a standard exception type.
var err = Error.argumentNull("input", "A parameter was undefined.");
throw err;
}
else if (min === undefined)
{
var err = Error.argumentNull("min", "A parameter was undefined.");
throw err;
}
else if (max === undefined)
{
var err = Error.argumentNull("max", "A parameter was undefined.");
throw err;
}
else if (min >= max)
{
var err = Error.invalidOperation("The min parameter must be smaller than max
parameter.");
throw err;
}
else if (isNaN(input))
{
msg = "A number was not entered. ";
msg += String.format("Please enter a number between {0} and {1}.", min, max);
var err = Error.create(msg);
throw err;
}
else if (input < min || input > max)
{
msg = "The number entered was outside the acceptable range. ";
msg += String.format("Please enter a number between {0} and {1}.", min, max);
var err = Error.create(msg);
throw err
}
alert("The number entered was within the acceptable range.");
}
var input = undefined;
var min = -10;
var max = 10;
// Result: A thrown ErrorArgumentNull exception with the following Error object message:
// "Sys.ArgumentNullException: A parameter was undefined. Parameter name: input"
validateNumberRange(input, min, max);
argumentOutOfRange 方法
创建 Sys.ArgumentOutOfRangeException 异常!
argumentType 方法
创建 Sys.ArgumentTypeException 异常!
argumentUndefined 方法
创建 the Sys.ArgumentUndefinedException 异常!
create 方法
创建自定义的错误异常。
例:
function throwAnError(input)
{
if (input === undefined)
{
// Throw a standard exception type.
var err = Error.argumentNull("input", "A parameter was undefined.");
throw err;
}
else if (input === "Test1")
{
// Throw a generic error with a message.
var messageVar = "A test message.";
var err = Error.create(messageVar)
throw err;
}
else if (input === "Test2")
{
// Throw a generic error with a message and associated errorInfo object.
var messageVar = "This error contains an additional custom errorInfo object";
var errorInfoObj = { name: "SomeNamespace.SomeExceptionName", someErrorID: "436" };
var err = Error.create(messageVar, errorInfoObj);
throw err;
}
alert("No error occured.");
}
throwAnError("Test2");
invalidOperation 方法
创建 Sys.InvalidOperationException 异常!
notImplemented 方法
创建 Sys.NotImplementedException 异常!
parameterCount 方法
创建 the Sys.ParameterCountException 异常!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Sample</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="ScriptManager1">
</asp:ScriptManager>
<script type="text/javascript">
function throwAnError(a, b)
{
if (arguments.length !== arguments.callee.length)
{
// Throw a standard exception.
var err = Error.parameterCount("Invalid number of parameters
attempted.");
throw err;
}
alert("No error occured.");
}
// Result: A Thrown Sys.ParameterCountException with the following message:
// Error: Sys.ParameterCountException: Invalid number of parameters attempted.
throwAnError(1,2,3,4);
</script>
</form>
</body>
</html>
popStackFrame 方法
更改文件名和错误行属性代替产生错误原来的信息。只有你创建了自定义错误对象才可以用该方法。
例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="ScriptManager1">
</asp:ScriptManager>
<script type="text/javascript">
// Register classes to test.
Type.registerNamespace('Samples');
Samples.A = function(){}
Samples.A.registerClass('Samples.A');
Samples.B = function()
{
Samples.B.initializeBase(this);
}
Samples.B.registerClass('Samples.B');
// Test the type, create an Error in a function and return it.
function validate(testType, expectedType) {
if (!testType.isInstanceOfType(expectedType))
{
var e = Error.create("Invalid type.");
// Ensure that the Error tracks where it is
// thrown rather than where it was created.
e.popStackFrame();
return e;
}
}
// Cause validate() to create and return an error.
var a = new Samples.A();
var b = new Samples.B();
var err = validate(Samples.A, b);
if (err)
{
throw err;
}
alert("No error occured.");
</script>
</form>
</body>
</html>
Error 基本类型
Error 对象
保存有关错误的信息。
var newErrorObj = new Error(
)
var newErrorObj = new Error(
number
)
var newErrorObj = new Error(
number,
description
)
Error 对象的构造函数语法有以下部分:
参数
number
与错误相联的数字值。如果省略则为零。
description
描述错误的简短字符串。如果省略则为空字符串。
说明
每当产生运行时错误,就产生 Error 对象的一个实例以描述错误。该实例有两个固有属性保存错误的描述(
description 属性)和错误号(number 属性)。
错误号是 32 位的值。高 16 位字是设备代码,而低字是实际的错误代码。
Error 对象也可以用如上所示的语法显式创建,或用 throw 语句抛掉。在两种情况下,都可以添加选择的任
何属性,以拓展 Error 对象的能力。
典型地,在 try...catch 语句中创建的局部变量引用隐式创建的 Error 对象。因此,可以按选择的任何方
法使用错误号和描述。
下面的例子演示了隐式创建 Error 对象的使用:
try
{ x = y // 产生错误。
}catch(e){ // 创建局部变量 e。
response.write(e) // 打印 "[object Error]".
response.write(e.number & 0xFFFF) // 打印 5009。
response.write(e.description) // 打印 "'y' is undefined".
}
方法
Error 对象没有方法。
属性
description 属性 | number 属性
description 属性
返回或设置与特定错误相联系的描述字符串。
object.description [= stringExpression]
description 属性的语法组成部分如下:
参数
object
必选项。Error 对象的任意实例。
stringExpression
可选项。包含错误描述的字符串表达式。
说明
description 属性包含与特定错误相联系的错误信息字符串。使用包含在这个中的值,来警告用户发生了一
个不能或不想处理的错误。
下面的例子举例说明了 description 属性的使用:
try
x = y // 产生错误。
catch(var e){ // 创建局部变量 e。
document.write(e) // 打印 "[object Error]".
document.write((e.number & 0xFFFF)) // 打印 5009.
document.write(e.description) //打印 "'y' is undefined".
}
number 属性
返回或设置与特定错误相联系的数字值。Error 对象的默认是 number。
object.number [= errorNumber]
参数
object
任意 Error 对象的实例。
errorNumber
表示一个错误的整数。
说明
错误号是一个 32 位的值。高 16 位字是设施代码,而低字才是真正的错误代码。
下面的例子举例说明了 number 属性的用法:
try
x = y // 产生错误。
catch(var e){ // 创建全局变量 e。
document.write(e) // 打印 "[object Error]".
document.write(e.number>>16 & 0x1FFF) // 打印设施代码 10。
document.write(e.number & 0xFFFF) // 打印错误代码 5009。
document.write(e.description) // 打印 "'y' is undefined".
}
相关文章推荐
- Asp.net AJAX JavaScript 基本类型扩展(1)——Array类型及其扩展
- Asp.net AJAX JavaScript 基本类型扩展(6)——Object 类型及其扩展
- Asp.net AJAX JavaScript 基本类型扩展(3)——Date 类型及其扩展
- Asp.net AJAX JavaScript 基本类型扩展(5)——Number 类型及其扩展
- Asp.net AJAX JavaScript 基本类型扩展(7)——String 类型及其扩展
- Asp.net AJAX JavaScript 基本类型扩展(7)——String 类型及其扩展
- 新瓶旧酒ASP.NET AJAX(4) - 客户端脚本编程(JavaScript基本类型扩展 - JavaScript Base Type Extensions)
- Asp.net AJAX JavaScript 基本类型扩展
- Asp.net AJAX JavaScript 基本类型扩展
- 新瓶旧酒ASP.NET AJAX(4) - 客户端脚本编程(JavaScript基本类型扩展 - JavaScript Base Type Extensions)
- Asp.net AJAX JavaScript 基本类型扩展——扩展介绍
- 新瓶旧酒ASP.NET AJAX(4) - 客户端脚本编程(JavaScript基本类型扩展)
- 新瓶旧酒ASP.NET AJAX(4) - 客户端脚本编程(JavaScript基本类型扩展 - JavaScript Base Type Extensions)javascript
- ASP.NET AJAX 说明文档->客户端引用->全局命名空间->JavaScript 基础类型扩展->Array 类型扩展->add 函数
- ASP.NET AJAX 说明文档->客户端引用->全局命名空间->JavaScript 基础类型扩展->Array 类型扩展->contains 函数
- ASP.NET AJAX 说明文档->客户端引用->全局命名空间->JavaScript 基础类型扩展->Array 类型扩展->addRange 函数
- ASP.NET AJAX 说明文档->客户端引用->全局命名空间->JavaScript 基础类型扩展->Array 类型扩展->clear 函数
- Asp.Net Ajax 学习笔记9 JavaScript的原生类型以及Microsoft AJAX Library的相关扩展(上)
- Asp.net AJAX JavaScript 基本类型扩展(2)——Boolean 类型及其扩展
- Asp.Net Ajax 学习笔记10 JavaScript的原生类型以及Microsoft AJAX Library的相关扩展(下)