`

javascript中的异常处理

    博客分类:
  • js
 
阅读更多

javascript中的异常处理
异常处理概述
在代码的运行过程中,错误是不可避免的,总的来说,错误发生于两种情况:一是程序内部的逻辑或者语法错误,二是运行环境或者用户输入中不可预知的数据造成的错误。对于前者,就称之为错误(error),可以通过调试程序来解决;而后一种则更多的称之为异常(exception),顾名思义,就是超出常规,没有按程序设计的意愿来输入数据。当然,异常还会有许多种类型。
所以说,异常并不等价于错误,相反,有时还会利用异常来解决一些问题。JavaScript可以捕获一个异常并进行相应的处理,从而避免了浏览器向用户报错。

使用try-catch-finally处理异常
用户可以使用该结构处理可能发生异常的代码,如果发生异常,则由catch捕获并进行处理,其语法如下:


try{ 
       //要执行的代码 

catch(e){ 
       //处理异常的代码 

finally{ 
       //无论异常发生与否,都会执行的代码 
}
通过异常处理,可以避免程序停止运行,从而具有了一定的自我修复能力。
在Ajax开发中,利用异常处理的一个典型应用就是创建XMLHttpRequest对象,不同浏览器创建它的方式是不一样的,为了使代码能够跨浏览器运行,就可以利用异常,一种方法不行,再用另一种方法,直到不发生异常为止,例如:

<script language="JavaScript" type="text/javascript"> 
<!-- 
var xmlhttp; 
try{ 
      //尝试用IE浏览器的方式创建XMLHttpRequest对象 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
}catch(e){ 
      try{ 
           //尝试用非IE浏览器的方式常见XMLHttpRequest对象 
           xmlhttp=new XMLHttpRequest(); 
      }catch(e){} 

//--> 
</script>
通过这种方式,就可以跨浏览器创建XMLHttpRequest对象。注意,即使不在catch块内进行处理,catch标识及其参数e也是必须写的,否则会产生语法错误,而finnally则不是必须的。
使用throw语句抛出异常
在JavaScript中有其内部的异常机制,在遇到非法操作时能自动抛出异常。实际的开发中,随着程序的复杂,需要能自己实现异常,这可以通过throw语句来实现:
throw value;
其中value就是要抛出的异常变量,它可以是JavaScript中的任何一种类型。但在JavaScript内部的异常中,异常参数(即catch(e)中的e)是一个名为error的对象,可以通过new Error(message)来创建这个对象,异常的描述被作为error对象的一个属性message,可以由构造函数传入,也可以之后赋值。通过这个异常描述message,可以让程序获取异常的详细信息,从而自动处理。
下面的程序计算两个数据的和,如果参数不是数字,则抛出异常,代码如下:

<script language="JavaScript" type="text/javascript"> 
<!-- 
//函数默认要求参数为数字 
function sum(a,b){ 
      a=parseInt(a); 
      b=parseInt(b); 
      //如果a或b不能转换为数字则抛出一个异常对象 
      if(isNaN(a) || isNaN(b)){ 
              throw new Error("arguments are not numbers"); 
      } 
      return a+b; 


try{ 
      //错误的调用 
      var s=sum("c","d"); 
}catch(e){ 
      //显示异常的详细信息 
      alert(e.message); 

//--> 
</script>
程序中使用字母作为参数传递给sum函数,是错误的,所以函数内抛出了一个异常对象,这个对象被catch语句获取,并使用alert语句显示了其详细信息。
注意:使用new Error(message)创建异常对象只是一种默认的习惯,也是内置异常的实现方式。这不是必需的,完全可以抛出任意数据类型的异常,例如一个整数,来作为异常的描述。只要在程序中抛出异常和捕获异常能匹配即可。

Error对象除了message属性以外,还有一些其他的属性,这些属性因浏览器而异,例如:在IE浏览器中,error对象的属性包括name、number、description、message;而在Firefox浏览器中,error对象的属性包括message、fileName、lineNumber、stack、name。在实际的应用中如果要实现自己的异常,这些属性只要被赋值,都是可用的,其中Firefox浏览器还会自动对stack属性赋值,用于显示异常出现的位置。

分享到:
评论

相关推荐

    javaScript异常处理文档

    javaScript异常处理文档,当遇到JavaScript等异常问题时可翻阅本文档寻找答案

    详解JavaScript中的异常处理方法

    JavaScript中的异常处理是编写健壮脚本的重要组成部分。在JavaScript中,主要的异常处理方法包括try...catch语句,throw语句以及finally子句的使用。异常处理机制能够在程序运行期间遇到错误时,提供一种控制错误...

    JavaScript异常处理

    JavaScript异常处理是编程中至关重要的一个环节,它用于管理和修复代码执行过程中可能出现的错误或异常情况。异常处理机制使得程序能够在遇到错误时不会立即终止,而是有机会进行适当的恢复或者给出反馈,增强了程序...

    javascript中异常处理案例(推荐)

    下面将详细分析和解释给定文件中提供的JavaScript异常处理案例。 首先,JavaScript中的异常处理主要是通过`try...catch...finally`语句来实现。下面是一个基本的异常处理结构: ```javascript try { // 尝试执行...

    JavaScript错误与异常处理

    JavaScript错误与异常处理是编程实践中不可或缺的部分,尤其是在JavaScript这样的脚本语言中,错误处理显得尤为重要。JavaScript中的错误分为两种主要类型:语法错误和运行错误。语法错误,也称为错误(Error),是...

    JavaScript 处理异常的方法

    JavaScript 处理异常的方法

    JavaScript权威指南第六版例题源码

    10. **错误处理**:`try...catch`语句用于捕获和处理运行时错误,是JavaScript中异常处理的关键。 11. **DOM操作**:JavaScript可以直接操作文档对象模型(DOM),添加、删除或修改HTML元素,实现页面动态效果。 ...

    javascript编程异常处理实例小结

    前言:在前一篇《asp.net开发中常见公共捕获异常方式总结》,我们整理总结了asp.net服务端的异常处理。这一篇接着前文,简单总结并讨论一下javascript在客户端的异常处理。这样asp.net的服务端和客户端异常处理我们...

    javascript 异常处理使用总结

    JavaScript中的异常处理是编程中非常重要的一个环节,它允许我们优雅地处理程序运行时可能出现的错误,避免程序因意外情况而中断。本文将详细介绍JavaScript中如何使用`try...catch...finally`语句进行异常处理以及...

    reactnative异常处理库

    这个库可能包含了错误处理的实现,包括错误的捕获、记录、上报和恢复机制,开发者可以查看其源码来学习如何实现一个自定义的异常处理系统,或者直接将其集成到自己的项目中,以提升应用的健壮性。在实际使用时,需要...

    JavaScript中的异常捕捉介绍

    JavaScript中的异常处理机制是通过`try...catch...finally`语句来实现的,它允许开发者在代码中捕获并处理可能出现的错误。这个机制与Java类似,但有一些关键的差异。 首先,`throw`语句在JavaScript中可以抛出任何...

    错误处理的艺术:精通JavaScript中的异常管理

    ### 错误处理的艺术:精通JavaScript中的异常管理 在当今高度依赖互联网的世界中,JavaScript(简称JS)作为一种轻量级且强大的编程语言,在构建交互式的Web应用程序方面扮演着至关重要的角色。JavaScript的主要...

    全局异常处理的实现

    在JavaScript中,全局异常处理通常在事件循环的顶层进行。在Node.js环境中,可以使用`process.on('uncaughtException', handler)`监听未捕获的异常。在浏览器环境中,可以监听`window.onerror`事件来捕获脚本错误。...

    23_异常处理_JavaScript模块化(1)1

    异常处理是确保程序健壮性的重要组成部分。在JavaScript中,我们可以通过`throw`关键字来抛出异常,当函数接收到无效参数或者遇到预期外的情况时。`throw`后面可以跟任何类型的数据,包括基本数据类型(如number、...

    前端开发、JavaScript、asyncawait、异步编程、异常处理,学习JavaScript异步编程

    在异步编程中,异常处理是非常重要的。`async/await`组合使得我们可以使用传统的`try-catch`结构来处理可能出现的错误。例如: ```javascript async function getData() { try { const response = await fetch('...

    使用自定义异常对象处理JavaScript错误消息

    首先,理解JavaScript中的异常处理机制。JavaScript通过`try...catch`语句来捕获和处理可能抛出的错误。当`try`块中的代码出现错误时,控制权会立即转移到相应的`catch`块。在`catch`块中,我们可以编写代码来处理...

    JavaScript学习笔记包括正则表达式、异常处理、调试、关键字等

    ### JavaScript 学习笔记知识点详解 #### 一、JavaScript 正则表达式 **1.1 定义与用途** ...同时,异常处理机制也非常重要,它使得开发者能够在程序运行过程中有效地处理错误,提高程序的健壮性和用户体验。

Global site tag (gtag.js) - Google Analytics