六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 27|回复: 0

javascript 异常处理

[复制链接]

升级  20.67%

17

主题

17

主题

17

主题

秀才

Rank: 2

积分
81
 楼主| 发表于 2013-1-27 05:17:46 | 显示全部楼层 |阅读模式
在javascript中也可以像java、C#等语言那样用try、catch、finally来作异常处理的(IE5.0以后支持),废话少讲,下面来个例子: <script language="javascript">  function test() {     try     {         CreateException();     }     catch(ex)//catch the ex     {             alert(ex.number+"\n"+ex.description);     }     finally     {         alert("end");//do something finally     } } </script>  这个例子运行一个未定义的函数CreateException(),捕捉到的ex有以下属性:number和description。 那么要抛出自己的异常怎么做呢? 再看个例子: <script language="javascript">  function initException(Num,Msg)//define an Exception {     this.ErrorNumber=Num;//error's number     this.ErrorMessage=Msg;//error's message } function CreateException() {     ex=new initException(1,"Created!");//create the excepion     throw ex;//throw ex } function test() {     try     {         CreateException();     }     catch(ex)//catch the ex     {         if(ex instanceof initException)//if the exception is our target,do something         {             alert(ex.ErrorNumber+ex.ErrorMessage);         }         else//else throw again         {             throw ex;         }     }     finally     {         alert("end");//do something finally     } } </script>  这个例子是抛出自己的异常,而自己抛出的异常的属性则可以自己定义多个,catch到异常之后还可以用instanceof来判断异常类型,这在有很多个异常的时候很有用。和java、C#等语言用多个catch块来捕捉不同的异常作对比,javascript只能有一个catch块,则可以用instanceof来区分不同的异常。 较早版本的javascript(1.3以前?)是用window.onerror事件来处理异常的,例子: <script language="javascript"> function CreateException() {     ERROR();//cause an error }  function handleError() {     return true; } window.onerror=handleError; </script>  例子中如果执行CreateException()的话,由于ERROR()是未定义的,引发异常,通过handleError()函数处理。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表