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