`

JavaScript中try...catch和异常处理

阅读更多
在JavaScript可以使用try...catch来进行异常处理。例如:
try    {
    foo.bar();
}   catch  (e)   {
    alert(e.name  +   " :  "   +  e.message);
}

 
目前我们可能得到的系统异常主要包含以下6种:


EvalError: raised when an error occurs executing code in eval()
RangeError: raised when a numeric variable or parameter is outside of its valid range
ReferenceError: raised when de-referencing an invalid reference
SyntaxError: raised when a syntax error occurs while parsing code in eval()
TypeError: raised when a variable or parameter is not a valid type
URIError: raised when encodeURI() or decodeURI() are passed invalid parameters


上面的六种异常对象都继承自Error对象。他们都支持以下两种构造方法:

new  Error();
new  Error( " 异常信息 " );
手工抛出异常的方法如下:


  try    {
     throw   new  Error( " Whoops! " );
}   catch  (e)   {
    alert(e.name  +   " :  "   +  e.message);
}


如要判断异常信息的类型,可在catch中进行判断:
try    {
    foo.bar();
}   catch  (e)   {
     if  (e  instanceof  EvalError)   {
        alert(e.name  +   " :  "   +  e.message);
    }   else   if  (e  instanceof  RangeError)   {
        alert(e.name  +   " :  "   +  e.message);
    }
     //   etc
}

Error具有下面一些主要属性:

description: 错误描述 (仅IE可用).
fileName: 出错的文件名 (仅Mozilla可用).
lineNumber: 出错的行数 (仅Mozilla可用).
message: 错误信息 (在IE下同description)
name: 错误类型.
number: 错误代码 (仅IE可用).
stack: 像Java中的Stack Trace一样的错误堆栈信息 (仅Mozilla可用).
因此为了更好的了解错误信息我们可以将catch部分改为如下形式:


  try    {
    foo.bar();
}   catch  (e)   {
     if  (browserType  !=  BROWSER_IE)   {                           
        alert(
             " name:  "   +  e.name  +
             " \nmessage:  "   +  e.message  +
             " \nlineNumber:  "   +  e.lineNumber  +
             " \nfileName:  "   +  e.fileName  +
             " \nstack:  "   +  e.stack);       
    }
      else    {                   
        alert(
             " name:  "   +  e.name  +    
             " \nerrorNumber:  "   +  (e.number  &   0xFFFF )  +
             " \nmessage:  "   +  e.message " );       
    }
}


JavaScript中的throw命令事实上可以抛出任何对象,并且我们可以在catch接受到此对象。例如:


1  try    {
2     throw   new  Date();     //  抛出当前时间对象
3  }   catch  (e)   {
4    alert(e.toLocaleString());     //  使用本地格式显示当前时间
5 }
6
分享到:
评论
1 楼 dearhwj 2009-06-21  
我也整理了一份javascript 异常处理的文档 [url]http://www.daniel-journey.com/archives/63 [/url]

相关推荐

    js中的异常处理try...catch使用介绍.docx

    `try...catch`语句用于捕获和处理可能发生的错误,防止程序因未预期的错误而崩溃。下面将详细介绍`try...catch`的工作原理和使用方式。 首先,`try`块是包含可能会引发错误的代码的区域。当在`try`块中的代码执行时...

    trycatch.zip

    总之,"trycatch.zip"中的示例展示了如何在Golang中模仿`try...catch`和`try...catch...finally`结构,通过自定义的函数和闭包实现了异常处理功能,这对于编写需要优雅处理错误的Golang代码来说非常有用。

    理解javascript中try...catch...finally

    主要帮助大家理解javascript中try...catch...finally,从浅入深,一步步掌握javascript中try...catch...finally的使用方法,感兴趣的小伙伴们可以参考一下

    JavaScript Try...Catch 声明的 使用方法

    JavaScript 提供了 `try...catch` 结构来帮助开发者捕获和处理运行时错误。通过这种机制,我们可以避免将错误直接展示给用户,而是采用更友好的方式处理这些异常情况。 #### 二、Try...Catch 的基本概念 在 ...

    js中的异常处理try...catch使用介绍

    try...catch结构是JavaScript中处理异常的主要方式。try块内包含可能抛出异常的代码,而catch块用于处理try块中的异常。通过这种方式,程序即使遇到错误也能够继续运行,而不是直接崩溃。 try...catch语句的结构...

    详解JavaScript中的异常处理方法

    在JavaScript的异常处理实践中,需要注意的是,try...catch...finally结构不能捕获语法错误,因为语法错误发生在代码解析阶段,此时代码尚未执行。而运行时错误和逻辑错误则发生在代码运行阶段,因此可以被try......

    JS异常处理try..catch语句的作用和实例

    在JavaScript中,try..catch语句是最常用的异常处理机制。 首先,要了解异常处理的必要性。当浏览器执行JavaScript脚本时,若脚本发生错误,浏览器会在控制台或界面的特定区域显示错误信息。这些错误信息可能是一个...

    js实践篇:例外处理Try{}catch(e){} 1

    本文将深入探讨JavaScript中的异常处理机制,包括Error对象、自定义异常以及try...catch...finally语句的用法。 一、异常处理概念 在JavaScript运行时,如果发生如数组索引越界、类型不匹配或语法错误等错误,解释...

    javascript中的try catch异常捕获机制用法分析

    当在try代码块中发生错误时,控制流会立即跳转到相应的catch块,以便处理异常。finally块则用于执行不论是否出现异常都需要进行的清理工作。 ```javascript try { // 可能出错的代码 } catch (exception) { //...

    try-catch的用法和含义

    多个 `catch` 块按照它们在代码中的顺序来处理异常。如果某个异常类型被两个或更多 `catch` 块所捕获,则最先定义的那个 `catch` 块会被执行。 #### 六、结论 通过以上的介绍,我们可以看到 `try-catch` 在异常...

    javascript经典特效---JavaScript容错脚本.rar

    针对这些错误,JavaScript提供了try...catch语句来捕获和处理异常。在try块中,你可以放置可能抛出错误的代码,如果其中的代码抛出错误,那么执行会立即停止并跳转到相应的catch块。catch块可以包含处理错误的代码,...

    javascript高级编程.pdf

    - Edition 3:引入了字符串处理、错误定义和数值输出的更新,增加了对try...catch异常处理、正则表达式、新的控制语句的支持,这标志着ECMAScript成为了一门真正的编程语言。主要得到Internet Explorer 5.5+、...

    WEB开发 之 JavaScript 错误 - Throw、Try 和 Catch.docx

    在JavaScript中,有三种主要的错误处理机制:Try、Catch和Throw。 Try语句允许我们定义在执行时进行错误测试的代码块。如果在Try代码块中发生错误,JavaScript引擎将停止执行,并生成一个错误消息。Catch语句允许...

    JavaScript.The.Good.Parts

    7. **错误处理**:了解如何正确处理运行时错误,使用`try...catch`语句捕获和处理异常,是编写健壮代码的关键。 8. **异步编程**:JavaScript的事件循环和回调函数是异步编程的基础。随着ES6的出现,Promise和async...

    javascript...............

    包括变量(var、let、const)、数据类型(字符串、数字、布尔值、null、undefined、对象、数组、Symbol等)、操作符(算术、比较、逻辑、三元)、流程控制(条件语句、循环语句、函数)以及异常处理(try...catch)...

    JavaScript.2.0.The.Complete.Reference.2nd.2004

    7. **错误处理**:讨论如何使用try...catch语句来捕获和处理运行时错误,以及Error对象和自定义错误。 8. **BOM处理**:浏览器对象模型(BOM)允许JavaScript与浏览器进行交互,如窗口操作、导航、历史记录管理、...

    JavaScript Cheat Sheet.pdf

    JavaScript基础知识点总结 JavaScript是当前最流行的编程语言之一,广泛应用于Web开发中,尤其是在客户端的网页...1. 错误处理是指捕获和处理代码执行中的错误。 2. 错误处理可以通过try-catch语句和Error对象实现。

    JavaScript中的异常捕捉介绍

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

    javascript中 try catch用法

    JavaScript中的try catch语句是ECMAScript规范提供的异常处理机制,它允许程序捕捉执行过程中发生的错误,并执行错误处理代码,避免整个程序因为一个错误而崩溃。在JavaScript开发中,try catch语句的使用非常频繁,...

Global site tag (gtag.js) - Google Analytics