欢迎来到天天文库
浏览记录
ID:34723726
大小:93.68 KB
页数:4页
时间:2019-03-10
《javascript异常处理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、trycatchfinally语句说明trycatchfinally是javascript语言提供的异常处理机制。语法结构如下try{//这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行}catch(e){//如果try代码块中抛出了异常,catch代码块中的代码就会被执行。//e是一个局部变量,用来指向Error对象或者其他抛出的对象}finally{//无论try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。}try…catch…finally…语法中除了try以外catch和finally都
2、是可选的(两者必须要有一个),也就是说try…catch…finally…语法有以下三种形式try{//somecode}catch(e){//somecode}finally{//somecode}try{//somecode}catch(e){//somecode}try{//somecode}finally{//somecode}如果有一定catch,一旦try中代码抛出异常以后就是先执行catch中的代码,然后执行finally中的代码。如果没有catch语句,try中的代码抛出异常后,就会先执行finally中的语句,然后将try中抛出的异常以异常的方式继
3、续往上抛。不管try代码块的执行时如何被终止的(出现异常、return、自然终止)finally中的语句始终会被执行,正是由于finally的这种特性,通常finally用来执行一些清理工作。如果try中代码是以return,continue,break的方式终止的,Javascript引擎会在执行完finally中的语句以后再执行相应的try中的返回语句。throw语句说明throw语句在javascript1.4中已经实现。try的语法很简单,如下throwexpression;其中的expression可以是任何一种类型,也就是说throw“Thereisae
4、rror”或是throw1001都是正确的。但通常我们会抛出一个Error对象或是Error对象的子类。关于Error我们稍后介绍,先看一段throw的样例代码。functionfactorial(x){//Iftheinputargumentisinvalid,throwanexception!if(x<0)thrownewError("xmustnotbenegative");//Otherwise,computeavalueandreturnnormallyfor(varf=1;x>1;f*=x,x--)/*empty*/;returnf;}Error对象Er
5、ror对象和它的子类是在javascript1.5中实现的。Error的构造函数有两种newError()newError(message)Error有两个基本的属性name和message。message用来表示异常的详细信息。而name指的的是Error对象的构造函数。此外,不同的js引擎对Error还各自提供了一些扩展,例如mozilla提供了fileName(异常出现的文件名称)和linenumber(异常出现的行号)的扩展,而IE提供了number(错误号)的支持。不过name和message是两个基本的属性,在firefox和ie中都能够支持。Javas
6、cript中Error还有几个子类EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,各自的意思就不在这里详细描述了,读者可以在我提供的参考文档中找到相应的参考。Javascript的异常处理机制和window.onerror句柄当javascript代码中出现错误的时候,js引擎就会根据js的调用栈逐级寻找对应的catch,如果没有找到相应的catchhandler或catchhandler本身又有error或者又抛出新的error,最后就会把这个error的处理交给浏览器,浏览器会
7、用各自不同的方式(IE以黄色三角图案显示在左下角,而firefix会显示在错误控制台中)显示错误信息给访问者。很多场景下,我们会觉得这种错误提示方式不够友好,而且提示信息很隐蔽,那么我们机会自定义这种错误提示的方式吗?答案是有,就是window.onerror属性。javascript的window对象有一个特别的属性onerror,如果你将某个function赋值给window的onerror属性,那么但凡这个window中有javascript错误出现,该function都会被调用,也就是说这个function会成为这个window的错误处理句柄。//Dis
此文档下载收益归作者所有