您好,欢迎访问一九零五行业门户网

javascript Error 对象 错误处理_javascript技巧

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(错误提示);}
其它类似信息

推荐信息