Error 类型扩展
提供了基于 ECMAScript (JavaScript) Error 对象的扩展.
命名空间: 无. 本扩展类型是全局型的不属于任意一命名空间。
继承: 无
语法
var err = Error.create(message, errorInfo);
扩展成员
名称 | 说明 |
---|---|
根据指定的异常消息和非法的函数参数来创建一个 Sys.ArgumentException型 的异常 | |
根据指定的错误消息和NULL参数来创建一个 Sys.ArgumentNullException型 的异常。 | |
根据指定的错误消息和可以导致异常的参数来创建一个 Sys.ArgumentOutOfRangeException型 的异常。 | |
根据指定的错误消息和实际类型以及期待类型的参数来创建一个 Sys.ArgumentTypeException型 的异常。 | |
根据指定的错误消息和Undefined参数来创建一个 Sys.ArgumentUndefinedException型 的异常。 | |
根据指定的错误消息创建一个 Error 对象。 | |
根据指定的错误消息和导致本异常的参数创建一个 Sys.InvalidOperationException型的异常。 | |
根据指定的错误消息创建一个 Sys.NotImplementedException型的异常。 | |
根据指定的错误消息创建一个 Sys.ParameterCountException型的异常。 | |
将 该Error实例的fileName和lineNumber字段更新为该Error被掷出时的位置,而不是该Error被创建时的位置。(--引用自 http://www.cnblogs.com/dflying/archive/2007/02/09/646430.html) |
备注
Error 扩展是Microsoft AJAX库的一部分。 它为 JavaScript 的 Error 对象提供了许多与 .NET 程序结合的更密切的成员。
客户端脚本的 Error 类型 可以更有效的处理 Debug 和 Release 方法
Microsoft ASP.NET AJAX Error 对象扩展提供了客户端脚本的更有效的编译方法(debug 或 release)异常处理 使用release方式,异常处理加强了性能,只包含必须的异常处理使脚本大小缩到最小。 使用debug方式, 异常处理提供了更多特色功能例如类型检查和参数检查, 并且在release方式中提供了更多复杂的异常消息。 更多消息,请参见 How to Enable Debugging for ASP.NET Applications 和ASP.NET AJAX 追踪与调试综述.
Error 类型
Error 类型扩展创建了内部异常的定义结构类型, 使用参数名和可行的扩展数据使异常描述更加丰富和精确。
你可以通过测试异常类型来决定使用何种方法。更多信息,请参见 Object 类型扩展, Object.getType 函数, 和Object.getTypeName 函数.
下面这个示例使用Error对象的getTypeName方法测试了异常类型。
try{ }
catch (e) {
If (Object.getTypeName(e) == "ArgumentNull")
// 执行的操作
}
更多关于JavaScript 的对象的类型扩展的信息,请参见 Error Object in the JScript Language Reference.
下面的示例展示了如何通过ASP.NET AJAX Error 对象的扩展的 create 方法来创建一个新的 Error 对象实例.
CS
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="ScriptManager1">
</asp:ScriptManager>
</form>
</body>
</html>
<script type="text/javascript">
Type.registerNamespace('Samples');
Samples.ErrorExample = function(){};
Samples.ErrorExample.prototype =
{
validateNumberRange: function(input, min, max)
{
try
{
// 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
}
document.write("The number entered was within the acceptable range.");
}
catch(e)
{
// If debug mode then write the exception information to the bottom of the page.
// Otherwise show an alert.
if(debug.isDebug)
{
var errType = e.type;
var msg = "(DEBUG MODE)</p>A CLIENT-SIDE RUNTIME EXCEPTION OCCURED:</p>" + e.message + "</p>Error Type: " + errType;
document.write(msg);
}
else
{
alert(e.message);
}
}
}
}
Samples.ErrorExample.registerClass('Samples.ErrorExample');
var errSample = new Samples.ErrorExample();
var input = undefined;
var min = -10;
var max = 10;
// Result id a thrown ErrorArgumentNull exception with the following Error object message:
// "Sys.ArgumentNullException: A parameter was undefined. Parameter name: input"
errSample.validateNumberRange(input, min, max);
</script>
VB
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<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>
</form>
</body>
</html>
<script type="text/javascript">
Type.registerNamespace('Samples');
Samples.ErrorExample = function(){};
Samples.ErrorExample.prototype =
{
validateNumberRange: function(input, min, max)
{
try
{
// 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
}
document.write("The number entered was within the acceptable range.");
}
catch(e)
{
// If debug mode then write the exception information to the bottom of the page.
// Otherwise show an alert.
if(debug.isDebug)
{
var errType = e.type;
var msg = "(DEBUG MODE)</p>A CLIENT-SIDE RUNTIME EXCEPTION OCCURED:</p>" + e.message + "</p>Error Type: " + errType;
document.write(msg);
}
else
{
alert(e.message);
}
}
}
}
Samples.ErrorExample.registerClass('Samples.ErrorExample');
var errSample = new Samples.ErrorExample();
var input = undefined;
var min = -10;
var max = 10;
// Result id a thrown ErrorArgumentNull exception with the following Error object message:
// "Sys.ArgumentNullException: A parameter was undefined. Parameter name: input"
errSample.validateNumberRange(input, min, max);
</script>