JavaScript的错误简易处理

调试JavaScript着实是一件令人头痛的事情,但现在有很多工具让调试工作更方便和准确的发现错误信息。好的错误处理技术可以让脚本的开发、调试和部署更流畅。曾经,javascript总是因为会出现奇怪的令人困惑的错误消息而知名,调试这种信息确实是一段难熬的经历。以下是解决JavaScript错误的一些小方法:

 

1. try-catch

ECMA-262第3版引入了try-catch语句,基本的语法如下所示:

try {

}

catch(error) {

}

如果try块中的任何代码发生错误,就会立即执行catch块。此时,catch块会接收到一个包含错误信息的对象。即使不使用这个错误对象,也要起个名字,对象中包含的实际信息因浏览器而异,但共同的是一个保存错误消息的message属性,ECMA-262还规定了一个保存错误类型的name属性,所有浏览器都支持这个属性(Opera 9之前的版本除外)。

 

2. finally

虽然在try-catch块中是可选的,但finally子句一经用,无论如何都会执行,甚至return语句都不会阻止,例如:

function test() {

  try{

   return 1;

  }

  catch(error) {

   return 2;

  }

 finally {

   return 3;

  }

}

 

3. 错误类型

每种错误都有对应的错误类型,而当错误发生时,就会抛出相应类型的错误对象,ECMA-262定义了7种错误类型:

1) Error: 基类型。

2) EvalError: 使用eval()函数发生异常时抛出。

3) RangeError: 数值超出相应范围时抛出。

4) ReferenceError: 找不到对象时抛出。

5) SyntaxError: 使用eval()函数中的字符串有语法错误时抛出。

6) TypeError: 在变量中保存意外类型或访问不存在的方法时抛出。

7) URIError: 使用encodeURI或decodeURI()中URI格式不正确时抛出。

 

4. 抛出错误

与try-catch相配的还有一个throw操作符,用于抛出自定义错误。抛出错误时,必须给throw操作符指定一个值,这个值的类型没有要求,例如:

throw 123;

throw "Hello World!";

在遇到throw操作符时,代码会立即停止执行。

 

5. 错误事件

没有通过try-catch处理的错误都会触发window对象的error事件。任何浏览器中,onerror事件处理程序都不会创建event对象,但它可以接受3个参数:错误消息、错误所在的URL和行号。只要发生错误,无论是不是浏览器生成的,都会触发error事件,并执行这个事件处理程序,如果在事件处理程序中返回false,可以阻止浏览器报告错误的默认行为,例如:

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

 alert(message);

  returnfalse;

}

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

 

本文为Anyforweb技术分享博客,需要了解网站建设相关,请访问anyforweb.com。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值