首页 > 代码库 > JavaScript高级程序设计学习笔记--错误处理与调试
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操作符,用于随时抛出自定义错误。抛出错误时,必须要给throw操作符指定一个值。
throw 12345;throw "Hello world!";
类型转换错误
类型转换错误发生在使用某个操作符,或者使用其他可能会自动转换值的数据类型的语言结构时。在使用相等(==)和不相等(!=)操作符,或者if、for及while等流控制语句中使用
非布尔值时,最常发生类型转换错误。
多数情况下,我们建议使用全等(===)和不全等(!==)操作符,以避免类型转换。来看一下例子:
alert(5=="5"); //truealert(5==="5"); //falsealert(1==true); //truealert(1===true); //false
使用全等和非全等操作符,可以避免发生因为使用相等和不相等操作符引发的类型转换错误,因此我们强烈推荐使用。
数据类型错误
添加一条简单的类型检测语句,就可以确保函数不那么容易出错。
function getQueryString(url){ if(typeof url=="string"){ //通过检查类型确保安全 var pos=url.indesOf("?"); if(pos>-1){ return url.substring(pos+1); } } }
大体上来说,基本类型的值应该使用typeof来检测,而对象的值则应该使用instanceof来检测。
将消息记录到控制台
可以通过console对象向JavaScript控制台中写入消息,这个对象具有下列方法:
error(message):将错误消息记录到控制台
info(message):将信息记录到控制台
log(message):将一般消息记录到控制台
warn(message):将警告消息记录到控制台
系统无法找到指定资源
在使用JavaScript请求某个资源URL,而该URL的长度超过了IE对URL最长不能超过2083个字符的限制时,就会发生这个错误。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。