日期:2014-05-16  浏览次数:20407 次

javascript异常处理-乾蓝洛-博客园

javascript异常处理-乾蓝洛-博客园
2011年10月29日
  }         错误处理的重要性
  以前,javascript总是因为会出现奇怪的令人困惑的错误消息而知名,调试这种信息确实是一种痛苦的经历。
  因此,第四版的浏览器(IE4.0和Netscape4.0)包含了一些基本的错误处理功能。不久之后,ECMA和ECMASCript第三版中提出新的解决方案。
  最新的ECMAScript添加了异常处理机制,采用了从Java中移植过来的模型,第三版用ECMAScript第二版中的一些保留字实现了try…catch..finally结构以及throw操作符
  1.1、早期浏览器的错误处理
  早期的浏览器(如IE3.0)没有错误处理。函数通过返回一个无效值(一般是null、false或-1,根据不同的函数不同)来表示发生了错误,考虑以下代码:
  var index = findColor(colorarray,”red”);
  If (index==-1)
  alert(“该项不存在”);
  else
  alert(“该项的位置是:”+index);
  以上的问题在于函数findcolor的返回值-1无从判断是没有找到还是出错了。
  错误和错误处理将帮助我们解决这个问题
  在javascript引入错误处理后,web开发人员就可以更好的对代码进行控制了。好的错误处理技术可以让脚本的开发、测试和部署更流畅。Js尤为如此,因为它缺乏标准的开发环境来指导开发人员。
  }         错误和异常
  错误的类型无外两种:语法错误和运行时错误
  1、语法错误
  传统编程语言编译时解析错误,在javascript中发生在解释时。这些错误是由代码中的意外字符直接造成的。然后就不能完全编译/解释了,如:
  window.alert(“test”
  不过,在javascript中,只有在同一线程中的代码会受到错误代码的影响。在其他线程中的代码和其他外部引用的文件中的代码,如果不依赖于包含错误的代码,则可以继续执行
  如:
  
  
  function handlerLoad() {
  windows.open(“about:blank”);
  }
  function handleClick(){
  alert(“click”);
  }
  
  
  
  
  
  这段JS代码,页面载入时会报JS错误,但不会影响handleClick的执行
  }         处理错误
  Javascript提供了两种特殊的错误处理方式
  BOM包含一个onerror事件处理函数,这个window对象与图像对象上都有
  同时ECMAScript定义了另一个从java中借鉴过来的try…catch结构来处理异常
  u     onerror事件处理函数
  
  
  
  
  
  
  
  这样,网页出错,便会弹出”出错了“消息框”,但不幸的是网页仍会弹出错误提示框
  如果想去掉这个提示框,改造如下:
  }         function handleError()
  }           {
  }              alert("出错了");
  }                  return true;
  }           }
  u     取出错误信息    onerror事件处理函数提供了三种信息来确定错误确切的性质
  错误信息―对于给定错误,浏览器会显示同样的信息
  URL