JS异常处理小结

 

有人说:JavaScript就是为了取悦用户而给开发者带来痛苦的一项技术。页面中,错误在所难免。一般而言,页面错误大致分为两种:程序内部的逻辑或者语法错误、运行中数据错误。前者多称之为错误(error),后则则多称之为异常(Exception)。

       处理异常最常用的方式:try-catch-finally,通过异常处理,可以避免程序停止运行,从而具有了一定的自我修复能力。具体使用我就不多说,下面就异常处理中需要注意的地方小结一下。

       在使用jQuey获取一个对象的属性时,如果该对象不存在,jQuery有可能会抛出异常,在有些我们不想让用户看到这样的异常,最常用的方式就是先判断该对象是否存在。如果不假思索,我们很有可能会使用如下方式:

if ($("#objID")){ }

 

 

 

这种方式看起来好像可以,实际上是不可取的。因为jQuery对象永远都有返回值,所以$("#objID") 总是返回TRUE

 

通过判断对象是否存在有如下可取方式:

1、  使用普通的js代码获取该元素,判断是否存在

if(document.getElementById('objId')){
	//如果元素存在	
}

 

 

 

 

2、  使用jQuery获取,判断该元素的大小(长度),或者将jQuery对象转为DOM对象判断。

	//判断jQuery对象的长度
	if($('#objId').length>0){

	}
	//将jQuery对象转换成DOM对象进行判断
	if($('#objId')[0]){

	}

 

 

 

 

当然,也可以通过try-catch捕获异常的方式来处理,不过这种方式用来处理对象是否存在就不太好了。

 

还有一种是在页面编译期间出现错误的情况,页面代码本身没有问题,用户的过快操作,页面JS代码还没有执行完成就直接转到其他页面也会出现这样的错误。这种错误抛给用户是相当不友好的,那么有没有办法去避免呢。下面是一种解决方案,在head部分添加如下代码:

 

    <SCRIPT type="text/javascript">
    function doNothing(){ return true; } 
    window.onerror = doNothing; 
     </SCRIPT>

 

 

 

这种方案,只有在系统经过充分的测试后才可以使用。测试的时候,建议把代码注释或者直接去掉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值