JavaScript
十七、错误处理与调试
17.1 浏览器报告的错误
- js发生错误时,默认隐藏错误信息
17.1.1 IE
- 可以设置为一旦有错误发生就弹出错误通知
17.1.2 Firefox
- 错误记录在控制台
17.1.3 Safari
17.1.4 Opera
17.1.5 Chrome
17.2 错误处理
17.2.1 try-catch语句
try{
...
}catch(error){
alert(error.message);
}
17.2.1.1 finally子句
- finally子句之前的return都会被忽略
17.2.1.2 错误类型
- 可以通过instanceof判断类型
17.2.1.3 合理使用try-catch
- 使用try-catch后,浏览器将不会记录错误
17.2.2 抛出错误
- 可以抛出任意类型的对象
- throw { name : “javascript” };
- 可以抛出内置错误类型
- throw new Error(message);
- 可以创建自定义错误类型
- 作用:明确错误原因,方便调试
17.2.2.1 抛出错误的时机
- 在某种特定条件(例如参数必须为数组等)下,执行函数失败时抛出错误
17.2.2.2 抛出错误与使用try-catch
- 抛出错误的目的在于提供错误发生具体原因的消息
- try-catch的目的在于避免浏览器以默认方式处理它们
17.2.3 错误(error)事件
- 任何未被捕获的错误都将触发window对象的error事件
- window对象的error事件不会创建event对象,只接收三个参数
- message
- url
- line
- <image>也支持error事件
- src指定的URL无法返回能被识别的图像格式则会触发该事件
- 会创建event对象
17.2.4 处理错误的策略
- 记录错误何时发生及发生原因
17.2.5 常见的错误类型
17.2.5.1 类型转换错误
17.2.5.2 数据类型错误
17.2.5.3 通信错误
- 格式不正确的URL或发送的数据有问题
17.2.6 区分致命错误和非致命错误
- 非致命错误
- 不影响用户的主要任务
- 只影响页面的一部分
- 可以恢复
- 重复相同操作可以消除错误
- 致命错误
- 应用程序根本无法继续运行
- 错误明显影响到了用户的主要操作
- 会导致其他连带错误
17.2.7 把错误记录到服务器
- catch到错误之后,将错误信息发送到服务器集中管理
- 标注错误来自前端
17.3 调试技术
17.3.1 将消息记录到控制台
- console
- error
- info
- log
- warn
17.3.2 将消息记录到当前页面
17.3.3 抛出错误
- 抛出有明确信息的错误
17.4 常见的IE错误
17.4.1 操作终止
- 在页面未完全加载时操作未加载的元素
17.4.2 无效字符
17.4.3 未找到成员
- 给已销毁的变量赋值
17.4.4 未知运行时错误
- 在行内元素中插入块元素
- 访问表格任意部分的任意属性
17.4.5 语法错误
- 引用了外部javascript文件,但该文件最终并没有返回javascript代码
- 内部语法错误
17.4.6 系统无法找到指定资源
- get方式请求,且URL过长
本文深入探讨JavaScript错误处理机制,包括try-catch语句、错误类型、抛出错误的策略,以及如何利用调试技术定位并修复问题。涵盖浏览器报告错误的方式,如IE、Firefox、Safari、Opera和Chrome的不同处理方法。

被折叠的 条评论
为什么被折叠?



