js017-错误处理与调试

本章内容

理解浏览器报告的错误

处理错误

调试JS代码

17.2 错误处理

17.2.1 try-catch语句

try{

//possible error code

}catch(error){

//how to deal with this error

}

1、finally子句

该子句在try-catch中是可选的,但是finally子句一经使用,其代码无论如何一定会执行:

function textFinally(){

try{

//possible error code

return 2;

}catch(error){

//how to deal with this error

return 1;

}finally{

return 0;

}

}

该函数只会返回0,只有当最后面的finally去掉后该函数才可能返回2.

2、错误类型

以下7种错误类型:及其触发场景

Error

基类型

EvalError

在使用eval()函数而发生异常是抛出

RangeError

在数值超出相应范围时触发

ReferenceError

找不到对象是触发

SyntaxError

当我们把错误的JS字符串传入eval()函数是触发

TypeError

在变量中保存着意外的类型是,或者在访问不存在的方法时。

URIError

在使用encodeURI()或decodeURI(),而URI格式不正确时

3、合理使用try-catch

17.2.2抛出错误

throw 操作符,用于随时抛出自定义错误。在遇到throw时,代码会立即停止运行。仅当有try-catch捕获到被抛出的错误时代码才会继承执行。

1、抛出错误的时机

2、抛出错误与使用try-catch

17.2.3错误事件

只要发生错误,无论是不是浏览器生成的都会触发error事件,并执行事件,处理程序。

如下事件处理程序中返回false,可以组织浏览器报告错误的默认行为

window.onerror = function(message, url, line){

alert(message);

return false;

}

图像也支持error事件。只要图像中的额src特性中的URL不能返回可以被识别的图像格式,就会触发error事件。

 

17.2.4处理错误的策略

17.2.5常见的错误类型

错误处理的核心是首先要知道代码里会发生什么错误。一般来说,需要关注三种错误:

1、类型转换错误;

发生在使用给某个操作符,或者使用其他可能会自动高转换至的数据类型的语言结构时。在使用相等(==)不等(!=)或者if,for,while等流控制语句中使用非布尔值是,最长发生类型转换错误。

使用全等和非全等操作符,可以避免发生因为使用相等和不等操作符引发的类型转换错误

2、数据类型错误;

3、通信错误;

17.2.6        区分之名错误和非致命错误

17.2.7        把错误记录到服务器

 

17.3调试技术

17.3.1将消息记录到控制台

IE8,Firefox,Opera,Chrome,Safari,都有JS控制台,可以用来查看JS错误。而且,在这些浏览器中的,偶可以通过代码想控制台输出消息,对IE8,Firefox,Chrome,Safari,而言可以通过console对象向JS控制台写入该消息,这个对象具有下列方法:

error(message)

将错误消息记录到控制台

info(message)

将信息性消息记录到控制台

log(message )

将一般消息记录到控制台

warn(message)

将警告消息记录到控制台

17.3.2将消息记录到当前页面

在页面中开辟一小块区域用于显示小。这个区域通常是一个元素。

17.3.3抛出错误

17.4 常见的IE错误

1、操作终止

2、无效字符

3、未找到成员

4、未知运行时错误

5、语法错误

6、系统无法找到指定资源

声明:该博客由http://www.cnblogs.com/lal-fighting/原创发表,未经作者允许,不得私自转载抄袭!!!

js017-错误处理与调试的更多相关文章

  1. 17. javacript高级程序设计-错误处理与调试

    1. 错误处理与调试 l 在可能发生错误的地方使用try-catch方法,可以对错误进行及时的相应 l 使用window.onerror事件处理程序,这种方式可以接受try-catch不能处理的所有错 ...

  2. 段错误bug的调试

    我们在用C/C++语言写程序的时侯,内存管理的绝大部分工作都是需要我们来做的.实际上,内存管理是一个比较繁琐的工作,无论你多高明,经验多丰富,难 免会在此处犯些小错误,而通常这些错误又是那么的浅显而易 ...

  3. 第一百二十三节,JavaScript错误处理与调试

    JavaScript错误处理与调试 学习要点: 1.浏览器错误报告 2.错误处理 3.错误事件 4.错误处理策略 5.调试技术 6.调试工具 JavaScript在错误处理调试上一直是它的软肋,如果脚 ...

  4. php错误报告和调试

    3. 错误报告和调试 常常犯的一个错误是忘记关闭 PHP 错误和数据库错误报告,这样做是有风险的.在任何一个公开的站点,error_reporting 应该设置为0 ,最多只能设置为 E_ERROR, ...

  5. JS 错误处理与调试

    在程序开发中难免会遇到一些错误,在成千上万的代码中去寻找错误非常明显相当于大海捞针.为此,每种计算机编程语言都要它独特的一套错误处理与调试机制.当然,JavaScript也不例外. 错误发生: 运行代 ...

  6. 【python】错误/异常处理,调试,测试

    try: print('try') r=10/2 print('result is:',r) #发生错误,会执行这部分 except ValueError as e: print('ValueErro ...

  7. javascript错误处理与调试(转)

    JavaScript 在错误处理调试上一直是它的软肋,如果脚本出错,给出的提示经常也让人摸不着头脑. ECMAScript 第 3 版为了解决这个问题引入了 try...catch 和 throw 语 ...

  8. 存储过程实例总结(开发中的错误与总结,调试,数据库函数DATEDIFF计算当前日期是否在本周内)

    USE [POND] GO /****** Object: StoredProcedure [dbo].[OrderChargeList] Script Date: 04/16/2014 13:32: ...

  9. 《JAVASCRIPT高级程序设计》错误处理与调试

    一.错误处理 错误处理在程序设计中的重要性是毋庸置疑的,任何有影响力的web应用程序都需要一套完善的错误处理机制.良好的错误机制可以让用户得到提醒,知道发生了什么事. 1.try-catch语句 tr ...

  10. JavaScript(第二十七天)【错误处理与调试】

    JavaScript在错误处理调试上一直是它的软肋,如果脚本出错,给出的提示经常也让人摸不着头脑.ECMAScript第3版为了解决这个问题引入了try...catch和throw语句以及一些错误类型 ...

随机推荐

  1. android中的图片处理

    大图片处理 大图片处理是将原来像素高的转换为像素低的图片,比如原来图片是1024*768的,而手机屏幕是800*600的,这时候就需要进行转换.转换的方式很简单就是等比例缩放. package xid ...

  2. Excel——将内容导入

    1.写入Excel文件的操作引入Microsoft.Office.Tools.Excel.dll 程序集 List<Person> list = new List<Person> ...

  3. 35-less 简明笔记

    分屏显示文本文件 less [options] [file-list] less与more类似,但比more更加完善 例如:在显示一屏文本之后,less将显示提示副等待下一条命令的输入;可以向前或向后 ...

  4. C# 多线程防止卡死

    软件界面的响应特性是判断一款软件的非常重要的方面.一般来说,不管你软件功能做得有多么奇妙,如果软件有一点点死机的感觉都会让用户感到很讨厌,甚至怀疑你软件里是否藏有更大的问题. 要提高界面的响应特性,最 ...

  5. Java--剑指offer(8)

    36.输入两个链表,找出它们的第一个公共结点. 解题思路:这里主要是把两个链表的节点都放入两个栈中,这样就可以按照出栈的方式来比较节点,因为单链表只要是有相同的节点,那么之后的节点也都是一样的,所以如 ...

  6. 折叠ListView

    转自 http://blog.csdn.net/hnyzwtf/article/details/50487228 1 activity_main.xml <?xml version=" ...

  7. 类似掌盟的Tab页 Android 开源框架ViewPageIndicator 和 ViewPager 仿网易新闻客户端Tab标签 (转)

    原博客地址  :http://blog.csdn.net/xiaanming/article/details/10766053 本文转载,记录学习用,如有需要,请到原作者网站查看(上面这个网址) 之前 ...

  8. eclipse-搭建maven的war项目集合spring注解方式

    工具:eclipse 4.4.2 版本号:20150219-0600 jdk:1.7 1.下图创建maven工程,然后next 下图选择工程保存位置(这里选择默认),next 下图选择webapp项目 ...

  9. ThinkPHP的RBAC

    基于角色的访问控制(Role-Based Access Control) 在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限. ThinkPHP通过5张表实现权限控制 th ...

  10. TCP连接——爱的传声筒

    TCP连接——爱的传声筒 TCP通信最重要的特征是:有序(ordering)和可靠(reliable).有序是通过将文本流分段并编号实现的.可靠是通过ACK回复和重复发送(retransmission ...