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
发表评论
-
【援引】中考酡语语法总温虾讪项实战练习练习
2012-01-20 11:34 694【援引】中考酡语语法总温虾讪项实战练习练习 2012年01月 ... -
花瓣采集js解析-greatqn-博客园
2012-01-20 11:34 1632花瓣采集js解析-greatqn-博客园 2012年01月1 ... -
linux下程序开发-复合语句及输入输出.笔记
2012-01-20 11:33 858linux下程序开发-复合语句及输入输出.笔记 2010年0 ... -
转载:全面介绍javascript异常处理(try…catch…finally window.onerror)
2012-01-19 16:25 535转载:全面介绍javascript异常处理(try…catch ... -
《JavaScript高级程序设计》学习笔记――错误处理与调试
2012-01-19 16:25 650《JavaScript高级程序设计》学习笔记――错误处理与调试 ... -
ecshop transport.js/run() error:undefined
2012-01-19 16:25 718ecshop transport.js/run() error ... -
Handling metadata and cue points in Flash video(AsyncErrorEvent text=Error #2095 flash.net.NetStream)
2012-01-19 16:25 913Handling metadata and cue point ... -
小学生作文教学生活化
2012-01-17 06:08 570小学生作文教学生活化 2010年07月22日 小学 ... -
如何提高小学生写作文的能力
2012-01-17 06:08 695如何提高小学生写作文 ... -
提高小学生作文能力的几种基本方法
2012-01-17 06:08 613提高小学生作文能力的 ... -
小学生作文训练
2012-01-17 06:08 484小学生作文训练 2011年0 ... -
2011、一切已成为神马、不再浮云
2012-01-16 04:50 5722011、一切已成为神马、 ... -
成绩神马的是浮云对不对
2012-01-16 04:50 601成绩神马的是浮云对不对 2012年01月13日 今天是1 ... -
神马都是浮云~ ~我们的第一个学期
2012-01-16 04:49 569神马都是浮云~ ~我们的第一个学期 2012年01月13日 ... -
神马都是浮云是不是好题目
2012-01-16 04:49 496神马都是浮云是不是好题目 6小时前 喜欢一个人听喜欢的歌 ... -
神马都是浮云
2012-01-16 04:49 508神马都是浮云 2011年12月31日 那一年还没有猫扑 ...
相关推荐
开源的搜索引擎工具包和web搜索引擎系统 - austin lius fashion - 博客园.docx开源的搜索引擎工具包和web搜索引擎系统 - austin lius fashion - 博客园.docx开源的搜索引擎工具包和web搜索引擎系统 - austin lius ...
开源的搜索引擎工具包和web搜索引擎系统 - austin lius fashion - 博客园.pdf开源的搜索引擎工具包和web搜索引擎系统 - austin lius fashion - 博客园.pdf开源的搜索引擎工具包和web搜索引擎系统 - austin lius ...
ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园
【转】c# xml添加 删除 修改数据 - badnewfish - 博客园.htm【转】c# xml添加 删除 修改数据 - badnewfish - 博客园.htm【转】c# xml添加 删除 修改数据 - badnewfish - 博客园.htm【转】c# xml添加 删除 修改数据 -...
推荐--jQuery使用手册 - 仰天一笑 - 博客园
C# 绘制统计图(柱状图, 折线图, 扇形图) - steven_2005 - 博客园
Spring.NET学习笔记 - 刘冬.NET - 博客园
AjaxPro使用说明 - lexus - 博客园 Ajax是异步Javascript和XML(Asynchronous JavaScript and XML)的英文缩写。"Ajax"这个名词的发明人是Jesse James Garrett,而大力推广并且使Ajax技术炙手可热的是Google。Ajax的...
QVector常见使用方法 - 浅浅念 - 博客园随笔- 68 文章- 0 评论- 14博客园 首页 新随笔 联系 管理 订阅QVector常见使用方法仅在此简
1.配置引脚作为输出 2.如果检测输出的是高电平则输出电平,如果检测输出的 3. ESP8266刷AT固件与node 4. 用ESP8266+android,制
Linux静态库和动态库 - feisky - 博客园.mht
Qt 格式化字符串 - Avatarx - 博客园博客园首页新随笔联系管理订阅随笔- 1695 文章- 0 评论- 3Qt 格式化字符串Qt字符串格式化性能比较
javascript小技巧&&JavaScript[对象_属性]集锦 [转载了多篇] - 天轰穿_net-vs2005-ajax入门 - 博客园
CobaltStrike去除流量特征 - CoLoo - 博客园1
Entity Framework 6 Recipes 中文翻译系列-By博客园-china_fucan
转ibatis动态sql - phoebus0501 - 博客园.mht
Entity Framework试水系列-博客园cnblogs.rar
scrapy-redis搭建分布式爬虫环境 - 温良Miner - 博客园1
hive操作简单总结 - 赵大暖 - 博客园.html
IOS开发系列—Objective-C之Foundation框架 - KenshinCui - 博客园.pdf