欢迎来到天天文库
浏览记录
ID:55739779
大小:28.50 KB
页数:4页
时间:2020-06-03
《参考资料JavaScript异常处理.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、JavaScript异常处理异常处理概述在代码的运行过程中,错误是不可避免的,总的来说,错误发生于两种情况:一是程序内部的逻辑或者语法错误,二是运行环境或者用户输入中不可预知的数据造成的错误。对于前者,就称之为错误(error),可以通过调试程序来解决;而后一种则更多的称之为异常(exception),顾名思义,就是超出常规,没有按程序设计的意愿来输入数据。当然,异常还会有许多种类型。所以说,异常并不等价于错误,相反,有时还会利用异常来解决一些问题。JavaScript可以捕获一个异常并进行相应的处理,从而避免了浏览器向用户报错。使用try-ca
2、tch-finally处理异常用户可以使用该结构处理可能发生异常的代码,如果发生异常,则由catch捕获并进行处理,其语法如下:try{ //要执行的代码}catch(e){ //处理异常的代码}finally{ //无论异常发生与否,都会执行的代码}通过异常处理,可以避免程序停止运行,从而具有了一定的自我修复能力。在Ajax开发中,利用异常处理的一个典型应用就是创建XMLHttpRequest对象,不同浏览器创建它的方式是不一样的,为了使代码能够跨浏览器运行,就可以利用异常,一种方法不行,再用另一种方法,直到
3、不发生异常为止,例如:4、 }catch(e){}}//-->通过这种方式,就可以跨浏览器创建XMLHttpRequest对象。注意,即使不在catch块内进行处理,catch标识及其参数e也是必须写的,否则会产生语法错误,而finnally则不是必须的。使用throw语句抛出异常在JavaScript中有其内部的异常机制,在遇到非法操作时能自动抛出异常。实际的开发中,随着程序的复杂,需要能自己实现异常,这可以通过throw语句来实现:throwvalue;其中value就是要抛出的异常变量,它可以是JavaScript中的任何一种类型。但在JavaSc5、ript内部的异常中,异常参数(即catch(e)中的e)是一个名为error的对象,可以通过newError(message)来创建这个对象,异常的描述被作为error对象的一个属性message,可以由构造函数传入,也可以之后赋值。通过这个异常描述message,可以让程序获取异常的详细信息,从而自动处理。下面的程序计算两个数据的和,如果参数不是数字,则抛出异常,代码如下:6、 a=parseInt(a); b=parseInt(b); //如果a或b不能转换为数字则抛出一个异常对象 if(isNaN(a)7、8、isNaN(b)){ thrownewError("argumentsarenotnumbers"); } returna+b;}try{ //错误的调用 vars=sum("c","d");}catch(e){ //显示异常的详细信息 alert(e.message);}//-->9、ipt>程序中使用字母作为参数传递给sum函数,是错误的,所以函数内抛出了一个异常对象,这个对象被catch语句获取,并使用alert语句显示了其详细信息。注意:使用newError(message)创建异常对象只是一种默认的习惯,也是内置异常的实现方式。这不是必需的,完全可以抛出任意数据类型的异常,例如一个整数,来作为异常的描述。只要在程序中抛出异常和捕获异常能匹配即可。Error对象除了message属性以外,还有一些其他的属性,这些属性因浏览器而异,例如:在IE浏览器中,error对象的属性包括name、number、description10、、message;而在Firefox浏览器中,error对象的属性包括message、fileName、lineNumber、stack
4、 }catch(e){}}//-->通过这种方式,就可以跨浏览器创建XMLHttpRequest对象。注意,即使不在catch块内进行处理,catch标识及其参数e也是必须写的,否则会产生语法错误,而finnally则不是必须的。使用throw语句抛出异常在JavaScript中有其内部的异常机制,在遇到非法操作时能自动抛出异常。实际的开发中,随着程序的复杂,需要能自己实现异常,这可以通过throw语句来实现:throwvalue;其中value就是要抛出的异常变量,它可以是JavaScript中的任何一种类型。但在JavaSc
5、ript内部的异常中,异常参数(即catch(e)中的e)是一个名为error的对象,可以通过newError(message)来创建这个对象,异常的描述被作为error对象的一个属性message,可以由构造函数传入,也可以之后赋值。通过这个异常描述message,可以让程序获取异常的详细信息,从而自动处理。下面的程序计算两个数据的和,如果参数不是数字,则抛出异常,代码如下:6、 a=parseInt(a); b=parseInt(b); //如果a或b不能转换为数字则抛出一个异常对象 if(isNaN(a)7、8、isNaN(b)){ thrownewError("argumentsarenotnumbers"); } returna+b;}try{ //错误的调用 vars=sum("c","d");}catch(e){ //显示异常的详细信息 alert(e.message);}//-->9、ipt>程序中使用字母作为参数传递给sum函数,是错误的,所以函数内抛出了一个异常对象,这个对象被catch语句获取,并使用alert语句显示了其详细信息。注意:使用newError(message)创建异常对象只是一种默认的习惯,也是内置异常的实现方式。这不是必需的,完全可以抛出任意数据类型的异常,例如一个整数,来作为异常的描述。只要在程序中抛出异常和捕获异常能匹配即可。Error对象除了message属性以外,还有一些其他的属性,这些属性因浏览器而异,例如:在IE浏览器中,error对象的属性包括name、number、description10、、message;而在Firefox浏览器中,error对象的属性包括message、fileName、lineNumber、stack
6、 a=parseInt(a); b=parseInt(b); //如果a或b不能转换为数字则抛出一个异常对象 if(isNaN(a)
7、
8、isNaN(b)){ thrownewError("argumentsarenotnumbers"); } returna+b;}try{ //错误的调用 vars=sum("c","d");}catch(e){ //显示异常的详细信息 alert(e.message);}//-->
9、ipt>程序中使用字母作为参数传递给sum函数,是错误的,所以函数内抛出了一个异常对象,这个对象被catch语句获取,并使用alert语句显示了其详细信息。注意:使用newError(message)创建异常对象只是一种默认的习惯,也是内置异常的实现方式。这不是必需的,完全可以抛出任意数据类型的异常,例如一个整数,来作为异常的描述。只要在程序中抛出异常和捕获异常能匹配即可。Error对象除了message属性以外,还有一些其他的属性,这些属性因浏览器而异,例如:在IE浏览器中,error对象的属性包括name、number、description
10、、message;而在Firefox浏览器中,error对象的属性包括message、fileName、lineNumber、stack
此文档下载收益归作者所有