js017-错误处理与调试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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/原创发表,未经作者允许,不得私自转载抄袭!!!

以上是关于js017-错误处理与调试的主要内容,如果未能解决你的问题,请参考以下文章

解决couldn't connect to server 172.21.4.208:27 017 at src/mongo/shell/mongo.js:147

JavaScript错误调试

异常处理/调试

Node.js权威指南 (10) - Node.js中的错误处理与断言处理

调试D2JS

未处理的拒绝:操作未定义React js和Redux