文档详情

JavaScript错误与异常处理

汽***
实名认证
店铺
PPT
292.49KB
约28页
文档ID:608343484
JavaScript错误与异常处理_第1页
1/28

Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,融智技术学院,第13章 JavaScript错误与异常处理,13.1 为何进行错误处理,在,JavaScript,脚本语言的发展过程中,由于早期的浏览器不支持错误处理语句,而只能在函数中返回,-1,、,true,或,false,等特殊的值,并根据这些返回值来判断代码是否出现错误,JavaScript,脚本语言在版本更替过程中,提供了越来越多的错误处理方法,使开发者能快速确定发生了什么错误,以及定位错误发生的位置,从而大大提高了程序的正确性、可靠性,同时也很大程度上缩短了开发周期,具有十分重大的意义13.2 错误与异常的关系,JavaScript,中的错误可以分为语法错误和运行错误语法错误一般简称为错误(,Error,),而运行错误一般也叫做异常,(Exception),错误和异常同属于错误,但是也有着本质的区别下面将分别予以介绍,并分析它们之间的异同点13.2.1,错误,错误,指语法性错误,即是偏离了可接受的代码行为的一个动作或者实例。

在,JavaScript,脚本中,一旦有语法错误出现,整个程序不能正常启动运行类似于,C,、,C+,、,Java,等高级语言,其语法检查在程序编译或解释时进行,一旦有语法错误存在,整个页面则无法正常装载,从而不能正常启动运行13.2.2,异常,异常,指运行时的错误,即程序已经通过编译或者解释,在程序执行过程中出现的一个事件中断了正常指令的运行异常通常由一些非法的动作所引起在,JavaScript,脚本中,异常的影响范围为该代码所在的线程,而其他不依赖于出现异常处的代码的线程则可以正常运行13.2.3,异同点,错误和异常都是程序的错误,皆为开发者所不能容忍错误是语法性的错误,发生在程序编译或者解释时,其直接的后果将是程序无法正常启动;异常是非法动作所引起的错误,发生在程序运行时,其直接的后果是使程序不能正常地运行13.3,不同浏览器环境中的错误报告,不同浏览器内部使用不用的,JavaScript,解释器,因此错误报告的形式也是不尽相同的有的是直接弹出错误消息,如,Microsoft IE,;有的只是简单地把错误消息记录在控制台中,如,Mozilla,本节简要的介绍目前流行的几种浏览器对,JavaScript,的错误报告形式。

13.3.1 Windows IE,Windows IE,中对,JavaScript,的错误报告形式是多样的默认情况下,某些,IE,版本会弹出一个错误的警告框,并列出错误类型和错误所在的行数,如图,13.4,所示;某些,IE,版本只是在页面状态栏中显示:“页面出现错误”13.3.2 Mozilla,Mozilla,是一个自由的、源码开放的浏览器(或核心),体积小速度快,为目前最流行的浏览器之一,,Firefox,浏览器为其中一种Mozilla,的实现完全不同于,Microsoft IE,,采用标签式浏览,并可以便捷地添加或扩展插件13.3.3 MacOS Safari,在众多浏览器中,,MacOS Safari,对,JavaScript,脚本错误调试的支持是最不尽如人意的在默认的情况下,,Safari,不会产生任何错误报告为了浏览器能报告,JavaScript,脚本错误,可以通过下列步骤完成:,打开一个命令终端;,运行命令:,defaults write com.apple.Safari IncludeDabugMenu 1;,重新启动,Safari,浏览器;,此时浏览器工具栏成功添加“,Debug”,按钮,单击该按钮,并选上“,Log JavaScript Exceptions”,选项;,在,Application/Utilities,下打开,Console.app,,则,Safari,在该控制台上报告,JavaScript,错误。

13.3.4 MacOS IE,MacOS IE,在默认情况下,对,JavaScript,错误也不产生任何报告为了浏览器能报告,JavaScript,脚本错误,可以通过下列步骤完成:,选择菜单栏“编辑,查看”,打开“查看”对话面板;,选择“,Web,浏览器”选项卡,单击“,Web,设置”按钮,把其中“允许运行,Script,脚本(,Enable Scripting,)”和“显示错误报告(,Show Scripting Error Alerts,)”两个选项选中通过以上步骤,如果页面中遇到,JavaScript,脚本错误,,MocOS IE,浏览器弹出警告框提示用户错误的类型13.3.5 Opera 7,和,Mozilla,相似,,Opera 7,同样以,JavaScript,控制台的方式来记录页面中的,JavaScirpt,脚本错误信息可以选择菜单栏“窗口,特殊插件,JavaScript,控制台”来打开此控制台当页面中有,JavaScript,错误发生时,则在此控制台中记录下来,其错误信息包括:错误类型、错误信息、错误发生的线程以及发生错误的文件和行数等13.3.6,小结,上面几个小节分别简要介绍了不同浏览器环境中的错误报告形式,从中可明显地看出,各个浏览器平台均需进行彼此不同的设置,在浏览器载入包含错误或异常代码的文档时才能自动识别错误或异常代码的所在。

既然错误对脚本程序具有很大的危害,在,JavaScript,脚本中进行相应的错误处理显得非常有必要一般而言,,JavaScript,脚本提供了两种经典的错误处理方法:使用,onerror,函数和,try/catch,结构,下面分别介绍这两种错误处理方法的具体用法及使用场合13.4,使用,onerror,事件进行错误处理,onerror,事件为浏览器对象模型(,BOM,:,Browser Object Model,)中定义的标准事件,用于捕捉代码的错误,并引导开发人员进行相应的处理,较之使用,try/catch,语句进行错误处理的方式,该方法简单明了,首先介绍,BOM,中定义的,onerror,事件13.4.1 onerror,事件,onerror,事件是,BOM,的标准事件之一,只要页面中发生错误,该事件立即被激活,开发者仅需添加事件处理函数即可onerror,事件被激活后,系统调用其对应的事件处理函数进行响应在,JavaScript,脚本中,,onerror,事件处理函数可为如下两种结构:,函数声明与函数体合并,函数声明和函数体分离:,13.4.2 onerror,错误处理方法,onerror,事件被激活的同时,传递,3,个参数给事件响应函数:,Error Message,:错误报告消息,如缺少右括号、对象没有属性方法等;,URL,:发生错误的文件的,URL,地址;,Line Number,:错误所在的具体行数。

程序运行后,单击页面中“异常”按钮,13.4.3 onerror,错误处理方法的优缺点,onerror,错误处理方法简洁易行,仅需添加,onerror,事件响应函数即可,获得的信息也较为丰富,包括错误信息、产生错误的文件以及错误所在行数等不幸的是,,onerror,事件是浏览器对象模型(,BOM,)中定义的句柄,并不被特定的浏览器(如,Safari,等)所支持也即是说,并不是所有的浏览器都支持,onerror,事件即使在支持,onerror,事件的浏览器中,不同浏览器的处理方式也不尽相同基于此,很多开发者往往偏爱于用第二种处理方式即使用,try/catch,结构来处理脚本中出现的错误13.5,使用,try/catch,结构进行错误处理,try/catch结构原本为Java等高级语言中才支持的经典错误处理方法,用于监视程序代码中隐藏的错误和异常由于该结构处理程序代码隐藏的错误和异常非常有效,ECMAScript规范引入了在JavaScript脚本中获得支持的try/catch结构,来解决JavaScript脚本较为薄弱的,错误报告、错误处理以及代码调试环节,首先来了解JavaScript脚本中的try/catch结构。

13.5.1 try/catch,结构,熟悉,Java,程序设计语言的读者,对,try/catch,结构应该不会陌生,因为,try/catch,结构是,Java,语言中用来处理异常的经典结构13.5.2 Error,对象,在上面的实例中,得到异常报告:“,catch,捕捉到异常!”开发者同样会遇到使用,onerror,方法面临的突出问题:关于错误的信息量太少事实上,,catch,部分引入的参数,exceptionError,对象Error,对象有两个属性:,Name,:,Error,对象的类型,,Error,对象是一个基类,其下面还有若干子类Message,:,Error,对象中包含的错误信息13.5.3,嵌套,try/catch,结构,虽然,JavaScript,不支持一个,try,关键字带多个,catch,的结构,但其支持嵌套的,try/catch,结构嵌套,try/catch,结构可十分容易地解决部分读者关于“,catch,里面又发生异常怎么办”的问题13.5.4 throw,抛出异常,try/catch,结构不仅可捕捉到系统抛出的异常,也可以捕捉到开发者抛出的异常在,ECMAScript 3,规范后续的版本中,开发者都可使用,throw,抛出自定义的异常。

在,JavaScript,脚本中可以使用,throw,抛出任意异常,包括数字、字符串、布尔值或者对象13.6,脚本代码调试,类似于,C,、,C+,、,Java,等高级编程语言,调试也是,JavaScript,脚本程序开发过程中不可或缺的步骤,是程序能正常发挥作用的重要保证当程序结果不正确或需查看其中变量的动态变化情况时,开发者就要对代码进行跟踪调试,以定位错误并修正代码在,JavaScript,脚本中,对于短小简单的脚本程序,开发者可以用,alert,或者,Java,控制台来帮助调试但对于比较庞大的脚本程序,以上两种方法已经不能满足调试的需求,而只能借助于调试器,本节将介绍两个常用的调试器:,Microsoft Script Debugger,和,Venkman,13.6.1,使用,alert,语句跟踪调试,alert,调试方法就是在脚本中特定位置插入,alert,语句,对代码的运行情况进行有目的地跟踪,以定位错误和异常虽然该方法相对比较笨,但是,alert,调试是最简单而实用的方法相信很多编过,C,程序的读者,在调试,C,语言程序的时候喜欢用,printf(),函数打印一些信息,只要,printf(),函数能成功打印就表明程序能正常运行到此位置(相当一个断点),从而判断错误发生在该语句之后。

13.6.2,使用,Java,控制台,在支持,LiveConnect,技术的浏览器中(,Microsoft IE,不支持)可用,Java,控制台来协助脚本调试,该方法和,alert,调试方法类似,区别在于它使用“,java.lang.System.out.println()”,来代替,alert,语句13.6.3,使用,Microsoft Script Debugger,调试器,启动,Microsoft Script Debugger,调试器还可以使用如下方法:,若在页面运行过程中出现错误,在弹出的“错误”警告框询问“是否要进行调试”信息时,单击是按钮,启动,Microsoft Script Debugger,调试器;,在,JavaScript,脚本代码中嵌入,debugger,命令,当运行至,debugger,命令处时,浏览器启动,Microsoft Script Debugger,调试器,13.6.4,使用,Venkman,调试器,。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档