js017-错误处理与调试

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/原创发表,未经作者允许,不得私自转载抄袭!!!

时间: 2024-08-06 19:36:59

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

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

JavaScript错误处理与调试 学习要点: 1.浏览器错误报告 2.错误处理 3.错误事件 4.错误处理策略 5.调试技术 6.调试工具 JavaScript在错误处理调试上一直是它的软肋,如果脚本出错,给出的提示经常也让人摸不着头脑.ECMAScript第3版为了解决这个问题引入了try...catch和throw语句以及一些错误类型,让开发人员更加适时的处理错误. 一.浏览器错误报告 随着浏览器的不断升级,JavaScript代码的调试能力也逐渐变强.IE.Firefox.Safari.

JavaScript高级程序设计学习笔记--错误处理与调试

try-catch语句 只要代码中包含finally子句,则无论try或catch语句块中包含什么代码--甚至return语句,都不会阻止finally子句的执行,来看下面这个函数: function testFinally(){ try{ return 2; }catch(error){ return 1; }finally{ return 0; } } 调用这个函数会返回0(PS:但我实际执行的时候会先返回0,再返回2) 抛出错误 与try-catch语句相配的还有一个throw操作符,用于

Linux 下的段错误(Segmentation fault)调试方法

我们在用C/C++语言写程序的时侯,内存管理的绝大部分工作都是需要我们来做的.实际上,内存管理是一个比较繁琐的工作,无论你多高明,经验多丰富,难免会在此处犯些小错误,而通常这些错误又是那么的浅显而易于消除.但是手工“除虫”(debug),往往是效率低下且让人厌烦的,本文将就"段错误"这个内存访问越界的错误谈谈如何快速定位这些"段错误"的语句. 下面将就以下的一个存在段错误的程序介绍几种调试方法: 1 dummy_function (void) 2 { 3 unsig

段错误bug的调试

我们在用C/C++语言写程序的时侯,内存管理的绝大部分工作都是需要我们来做的.实际上,内存管理是一个比较繁琐的工作,无论你多高明,经验多丰富,难 免会在此处犯些小错误,而通常这些错误又是那么的浅显而易于消除.但是手工“除虫”(debug),往往是效率低下且让人厌烦的,本文将就"段错误"这个 内存访问越界的错误谈谈如何快速定位这些"段错误"的语句.下面将就以下的一个存在段错误的程序介绍几种调试方法:      1  dummy_function (void)    

js错误处理和调试

1.重点关注函数和可能导致函数执行失败的因素. 2.抛出错误和使用try-catch的时机:一般来说在应用程序架构较低的层次中经常会抛出错误.这个层次并不会影响当前执行的代码. 错误也得不到真正的处理.在多应用中使用的库和应用内部多处使用的辅助函数时,抛出错误后要提供详尽的错误信息. 3.只捕获确切知道该如何处理的错误.捕获错误的目的在于避免浏览器采用默认的方式处理它们.抛出错误的目的在于提供发生错误具体原因的消息. 4.常见的错误类型:类型转换错误.数据类型错误 和 通信错误. a.类型转换错

第 28 章 错误处理与调试

JavaScript 在错误处理调试上一直是它的软肋,如果脚本出错,给出的提示经常也让人 摸不着头脑. ECMAScript 第 3 版为了解决这个问题引入了 try...catch 和 throw 语句以及一些 错误类型,让开发人员更加适时的处理错误. 一.浏览器错误报告 随着浏览器的不断升级,JavaScript 代码的调试能力也逐渐变强.IE.Firefox.Safari. Chrome 和 Opera 等浏览器,都具备报告 JavaScript 错误的机制.只不过,浏览器一般面向 的是普

JS 错误处理与调试

在程序开发中难免会遇到一些错误,在成千上万的代码中去寻找错误很明显相当于大海捞针,为此,每种计算机编程语言都要它独特的一套错误处理与调试机制.当然,JavaScript也不例外. 发生错误: 执行代码时发生的错误有很多.每种错误都有对应的错误类型.ECMA-262定义了7种错误类型: 1.Error 错误 2.EvalError 全局错误 3.RangeError 引用错误 4.ReferenceError 参数错误 5.SyntaxError 语法错误 6.TypeError 类型错误 7.U

js错误处理与调试理论和办法 (转)

js错误处理与调试理论和办法 ECMA-262 第 3 版引入了 try-catch 语句,作为 JavaScript 中处理异常的一种标准方式.基本的语法如下所示,显而易见,这与 Java 中的 try-catch 语句是完全相同的.try{// 可能会导致错误的代码} catch(error){// 在错误发生时怎么处理}也就是说, 我们应该把所有可能会抛出错误的代码都放在 try 语句块中, 而把那些用于错误处理的代码放在 catch 块中.例如:try {window.someNonex

js正则表达式、错误处理与调试

正则表达式(英语:Regular Expression,在代码中常简写为regex.regexp或RE)使用单个字符串来描述.匹配一系列符合某个句法规则的字符串搜索模式. 语法: /pattern/modifiers; pattern代表模式(表达式,元字符,量词).例如:[abc],[0-9],\d,\s,\b,\uxxxx,n+,n*,n?. modifiers是修饰符.i代表对大小写不敏感:g代表执行全局匹配:m执行多行匹配. 正则表达式通常用于两个字符串方法 : search() 和 r

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

一.错误处理 错误处理在程序设计中的重要性是毋庸置疑的,任何有影响力的web应用程序都需要一套完善的错误处理机制.良好的错误机制可以让用户得到提醒,知道发生了什么事. 1.try-catch语句 try-catch语句是javascript处理异常的一种标准方式,它的结构如下: try{ // 把所有可能出现错误的代码放在try语句中 }catch(err){ // 把用于处理错误的块放在catch语句中 // catch块会接受到一个保存错误信息的对象 // 该对象的message属性是唯一一