靠谱的软件下载站
当前位置:  IEfans/IE专区/IE相关/解析IE浏览器中的Javascript Error对象

解析IE浏览器中的Javascript Error对象

IE相关 互联网 2010-01-18 阅读(4029)
之前写过一篇文章,IE6和IE8对Javascript字符串操作的细微差别,今天谈一下在IE浏览器下返回执行错误的Javascript代码所在的问题。其中在IE浏览器下,如果你使用了try-catch,那么当出现异常的时候,IE浏览器会传递一个Error对象。 输出:name=TypeError message='sldfj' 未定义 number=-2146823279 description='sldfj' 未定义 其中的number属性是一个整数,表示的是错误码,但这并不是真正的错误码,我们需要先将其做一下转换 var errCode = err.number& x0FFFF; 这得到真正的错误码,例如上述的-2146823279 转换之后就得到5009。有了这个错误码之后,我们可以到http://msdn.microsoft.com/en-us/library/1dk3k160(VS.85).aspx微软msdn上查找此错误码对应的。5009对应的错误是Undefined identifier。 javascript Error 对象 错误处理 Error对象 Property: name: 错误名 number: 错误号 description: 描述 message: 错误信息,多同description FF Only 属性 fileName: 错误发生的文件 stack: 错误发生时的调用堆栈 Constructor: Error(){ this(0,"")} Error(description){ this(0,description)} Error(number,description){ ....} 构造函数参数不带name,是因为Error对象的name对应于它的来源: EvalError: 错误发生在eval()中 SyntaxError: 语法错误,错误发生在eval()中,因为其它点发生SyntaxError会无法通过解释器 RangeError: 数值超出范围 ReferenceError: 引用不可用 TypeError: 变量类型不是预期的 URIError: 错误发生在encodeURI()或decodeURI()中 抛出Error: throw new Error(0,"Error Demo"); new Error可省略: throw("Error Demo"); 捕获Error: try catch finally语句: try{ ..可能错误的语句..} catch(e){ ..错误发生后的处理..} finally{ ..完成后执行的语句块..} finally不是必须的 如果嵌套,两个catch不要使用同一个参数名,以免覆盖 传入的参数是一个Error对象,可以从中得到错误信息 FF支持一个try多个catch,因为Js为弱类型不推荐使用 window.onerror错误捕获: window.onerror=function(Msg,Url,Num){} onerror事件会传给回调函数3个默认参数 Msg: 错误信息 Url: 发生错误的文件的Url Num: 错误发生位置的行号 window.onerror还能处理SyntaxError,比try catch更强大。 但是onerror属于bom,所以各浏览器厂家对其的支持都不同。 如IE发生error时,正常的代码会继续执行;在FF中,代码将结束;Safari只支持Image的onerror事件处理。 Image.onerror onerror还可以应用于其它HTMLElement上,最常见的是元素 处理Error: 判断错误类型: catch(e){ if(e.name=="RangeError") alert("错误提示");} 或 catch(e){ if(e instanceof TypeError) alert("错误提示");}

标签:IE相关IE浏览器JavaScriptError

Copyright © 1998-2017 www.iefans.net All Rights Reserved 湘ICP备13012168号-17