JavaScript如何处理错误
来源:互联网 发布:淘宝的付费流量 编辑:程序博客网 时间:2024/05/22 19:26
1.错误类型:
//RangeError、ReferenceError、TypeError、URIErrortry{someFunction();}catch(error){if(error instanceof TypeError){//处理类型错误}else if(error instanceof ReferenceError){//处理引用错误}else if(error instanceof RangeError){//处理超出范围错误}else if(error instanceof URIError){//处理URI格式错误}else{//处理其他类型错误}}2.自定义错误类型:
//自定义错误类型function CustomError(message){this.name="CustomError";this.message=message;}
CustomError.prototype=new Error();throw new CustomError("我的信息");3.抛出错误的时机
function process(values){if(!(values instanceof Array)){throw new Error('process():参数必须是一个数组。');}values.sort();for(var i=0,len=values.length;i<len;i++){if(values[i]>100){return values[i];}}return -1;}4.避免类型转换错误
//避免在流控制语句中使用非布尔值function concat(str1,str2,str3){var result=str1+str2;if(typeof str3=="string"){result+=str3;}return result;}5.避免数据类型转换错误
//基本类型的值应该用typeof来检测function getQueryString(url){if(typeof url=="string"){var pos=url.indexOf("?");if(pos>-1){return url.substring(pos+1);}}}//对象的值应该使用instanceof来检测function reverseSort(values){if(values instanceof Array){values.sort();values.reverse();}}6.避免通信错误
//避免通信错误:对于查询字符串,必须要使用encodeURIComponent()方法function addQueryStringArg(url,name,value){if(url.indexOf('?')==-1){url+='?';}else{url+='&';}url+=encodeURIComponent(name)+'='+encodeURIComponent(value);return url;}
var url="http://www.somedomain.com";var newUrl=addQueryStringArg(url,'redir','http://www.somedomain.com?a=b&c=d');7.把错误记录到服务器
//把错误记录到服务器function logError(sev,msg){var img=new Image();img.src='log.php?sev='+encodeURIComponent(sev)+'&msg='+encodeURIComponent(msg);}
for(var i=0,len=mods.length;i<len;i++){try{mods[i].init();}catch(ex){logError('非致命错误','模块初始化失败:'+ex.message);}}
0 0
- JavaScript如何处理错误
- 说说如何使用 JavaScript 进行错误处理
- javascript错误处理(1)
- javascript错误处理(2)
- JavaScript错误处理
- JavaScript 错误处理
- JavaScript之错误处理
- JavaScript 错误处理
- javascript 错误处理
- Javascript错误处理
- JavaScript错误处理
- JavaScript异常错误处理
- JavaScript 中的错误处理。
- javascript中错误处理
- Javascript的错误处理
- JavaScript处理错误
- javascript错误处理
- javaScript异步错误处理
- 如何通过Retrofit提交Json格式数据
- 实习杂记(21):LocalBroadcastManager的使用、优点在哪里?
- leetcode---Unique Paths---动规
- configure: error: Cannot find OpenSSL's <evp.h>
- POJ_1502_MPI Maelstrom_最短路径
- JavaScript如何处理错误
- [Java]BufferedOutputStream、DataInputStream源码分析
- [6-6]考试总结
- (九)JavaScript Math对象及方法
- 欢迎使用CSDN-markdown编辑器
- BZOJ 3124: [Sdoi2013]直径 (随便写写就好了)
- <<活着之上>>读书小记
- mysql带 AND 的多条件查询
- 陶哲轩实分析-第13章 度量空间上的连续函数