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);
  return false;
}

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

本文来自JavaScript教程栏目。

以上就是JavaScript错误处理方法介绍的详细内容,更多请关注web前端其它相关文章!

赞(0) 打赏
未经允许不得转载:web前端首页 » JavaScript 教程

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏