Error原生类型(Error原生类型的扩展见实例下方)
• 表示错误对象
– EvalError, URIError, RangeError, etc.
• 捕获方式:
– try { … throw new Error(…) } catch(e) { … }
–理论上可以throw出任意对象
• Error对象IE和FireFox公有属性
– message:错误信息
Error浏览器特定属性
•IE:
– description:同message属性
– number:错误编号,只有脚本引擎抛出的错误才有该属性
• FireFox:
– fileName:创建错误的文件
– lineNumber:创建错误对象的行号
–stack:创建错误时的堆栈信息
--------------------------------------------------------------------------------------------------
实例
html页面
<script language="javascript" type="text/javascript" src="Error.js"></script>
<script language="javascript" type="text/javascript">
try
{
throwError();
}
catch(e)
{
var errorMsg = ("Message: " + e.message + "\n"); //message:Error对象IE和FireFox公有属性,指错误信息
//Error浏览器特定属性
if (!e.stack) // IE中支持
{
errorMsg += ("Description: " + e.description + "\n"); //description:同message属性
errorMsg += ("Number: " + e.number); //number:错误编号,只有脚本引擎抛出的错误才有该属性
}
else//FireFox中支持
{
errorMsg += ("Line Number: " + e.lineNumber + "\n"); //lineNumber:创建错误对象的行号
errorMsg += ("File Name: " + e.fileName + "\n\n"); //fileName:创那家错误的文件
errorMsg += ("Stack Trace:\n" + e.stack); //stack:创建错误时的堆栈信息
}
alert(errorMsg);
}
</script>
Error.js页面
function throwError()
{
throw new Error("Custom Error");
}
Microsoft AJAX Library对Error原生类型的扩展
注:需添加ScriptManager控件 如:<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
• Error.create(message, errorInfo)方法:
–创建新的Error对象
–将Error对象的message属性设为true
–将errorInfo上的信息附加到Error对象
• Error.prototype.popStackFrame()方法:
–为Error对象整理出更优雅直观的信息(lineNumber, stack)
–对于IE无效
–如果一个方法仅仅是返回Error对象而不是抛出对象,则在返回前应该调用该方法