zoukankan      html  css  js  c++  java
  • JavaScript之处理异常

    一个程序通常有3种类型的异常,分别为“语法异常”、“运行时的异常”和“逻辑异常”,其中“语法异常”通常是在程序员输入一些编译器无法识别的代码后发生的;“运行时的异常”通常是在运行时碰到一个错误时发生的,它与“语法异常”的区别在于它不一定是JavaScript语言的错误引发的异常;“逻辑异常”往往发生在程序设计时,程序没有按照预先设计的方式运行。

    触发onerror事件是最早用于处理JavaScript异常的机制,页面出现异常时,将触发onerror事件,该事件在window对象上触发。

    <script language="javascript">

    window.onerror=function(){ alert("您调用的函数不存在"); return true; }

    </script>

    参数说明: window.onerror:触发onerror事件。 除了window对象可以触发onerror事件之外,图像对象也可以触发onerror事件。

    <script language="javascript">

    document.images[0].onerror=function(){ somestatements; return true; }

    </script>

    参数说明: document.images[0]:页面中的第一个图像。

    使用onerror事件处理异常除了可以捕捉异常之外,还可以提供如下3种信息来确定发生异常的详细信息。

    异常信息:获取异常信息。

    URL:获取发生异常的文件的绝对路径。

    行号:给定发生异常文件的行号。

    <script language="javascript">

    window.onerror=function(ms,Url,Line){ alert("您调用的函数不存在 "+ms+" "+Url+" "+Line+" "); return true; }

    </script>

    参数说明: window.onerror:window对象触发onerror事件。

    使用try…catch语句处理异常:

    JavaScript中从Java语言中引入了try...catch...finally功能,具体语法如下。

    <script language="javascript">

    try{

         somestatements; }

    catch(exception e){

        somestatements; }

    finally{ somestatements; }

    </script>

    参数说明: try:捕捉异常关键字。 catch:捕捉异常关键字。 finally:最终一定会被处理的区块的关键字。

    1.嵌套try...catch语句 如果在catch区域中也发生了异常,可以在catch区域中再使用一组try...catch语句,即嵌套使用try...catch语句。

    <script language="javascript">

    try{

             somestatements; }

    catch(exception){

             try{ somestatments; }

            catch(exception){

                  somestatments; } }

                   finally{ somestatements; }

    </script>

    参数说明: try:捕捉异常关键字。 catch:捕捉异常关键字。 finally:最终一定会被处理的区块的关键字。

    2.Error对象 try...catch...finally语句中catch通常捕捉到的对象为Error对象,Error类是所有用于抛出异常的类的基类,类似于Java语言中的用于抛出异常的基类Exception类,JavaScript中用于抛出异常的类如表所示。

                                                         JavaScript中用于抛出异常的类

      类                                                      发生异常的原因

    EvalError                               错误发生在eval()函数中

    RangeError                            数字的值超出了JavaScript可表示的范围

    ReferenceError                       使用了非法的引用

    TypeError                              变量的类型错误

    URIError                               在encodeURI()函数或者decodeURI()函数中发生错误

    Error对象有以下两个特性: name:表示异常类型的字符串。 message:实际的异常信息。

    3.使用throw语句抛出异常

    在程序中使用throw语句可以有目的的抛出异常。

    <script language="javascript">

      throw new Error("somestatements");

    </script>

    参数说明: throw:抛出异常关键字。 也可以使用throw语句抛出Error对象子类的对象。

    <script language="javascript">

      throw new TypeError("somestatements");

    </script>

  • 相关阅读:
    Android学习笔记八:String.Split("regex")相关
    Android转载六:Intent.ACTION
    Android学习笔记七:调用打电话、发短信等
    Android转载五:TextView换行问题
    常用正则表达式
    Android转载四:(布局)ImageView scaleType属性测试
    java并发容器类
    java并发编程-基础
    设计模式入门
    kafka模块概述
  • 原文地址:https://www.cnblogs.com/qilinge/p/5248693.html
Copyright © 2011-2022 走看看