1.错误类型:
[javascript] view plain copy
在CODE上查看代码片派生到我的代码片01.//RangeError、ReferenceError、TypeError、URIError
02.try{
03. someFunction();
04.}catch(error){
05. if(error instanceof TypeError){
06. //处理类型错误
07. }else if(error instanceof ReferenceError){
08. //处理引用错误
09. }else if(error instanceof RangeError){
10. //处理超出范围错误
11. }else if(error instanceof URIError){
12. //处理URI格式错误
13. }else{
14. //处理其他类型错误
15. }
16.}
2.自定义错误类型:
[javascript] view plain copy
在CODE上查看代码片派生到我的代码片01.//自定义错误类型
02.function CustomError(message){
03. this.name="CustomError";
04. this.message=message;
05.}
[javascript] view plain copy
在CODE上查看代码片派生到我的代码片01.CustomError.prototype=new Error();
02.throw new CustomError("我的信息");
3.抛出错误的时机
[javascript] view plain copy
在CODE上查看代码片派生到我的代码片01.function process(values){
02. if(!(values instanceof Array)){
03. throw new Error('process():参数必须是一个数组。');
04. }
05. values.sort();
06. for(var i=0,len=values.length;i<len;i++){
07. if(values[i]>100){
08. return values[i];
09. }
10. }
11. return -1;
12.}
4.避免类型转换错误
[javascript] view plain copy
在CODE上查看代码片派生到我的代码片01.//避免在流控制语句中使用非布尔值
02.function concat(str1,str2,str3){
03. var result=str1+str2;
04. if(typeof str3=="string"){
05. result+=str3;
06. }
07. return result;
08.}
5.避免数据类型转换错误
[javascript] view plain copy
在CODE上查看代码片派生到我的代码片01.//基本类型的值应该用typeof来检测
02.function getQueryString(url){
03. if(typeof url=="string"){
04. var pos=url.indexOf("?");
05. if(pos>-1){
06. return url.substring(pos+1);
07. }
08. }
09.}
10.//对象的值应该使用instanceof来检测
11.function reverseSort(values){
12. if(values instanceof Array){
13. values.sort();
14. values.reverse();
15. }
16.}
6.避免通信错误
[javascript] view plain copy
在CODE上查看代码片派生到我的代码片01.//避免通信错误:对于查询字符串,必须要使用encodeURIComponent()方法
02.function addQueryStringArg(url,name,value){
03. if(url.indexOf('?')==-1){
04. url+='?';
05. }else{
06. url+='&';
07. }
08. url+=encodeURIComponent(name)+'='+encodeURIComponent(value);
09. return url;
10.}
[javascript] view plain copy
在CODE上查看代码片派生到我的代码片01.var url="http://www.somedomain.com";
02.var newUrl=addQueryStringArg(url,'redir','http://www.somedomain.com?a=b&c=d');
7.把错误记录到服务器
[javascript] view plain copy
在CODE上查看代码片派生到我的代码片01.//把错误记录到服务器
02.function logError(sev,msg){
03. var img=new Image();
04. img.src='log.php?sev='+encodeURIComponent(sev)+'&msg='+encodeURIComponent(msg);
05.}
[javascript] view plain copy
在CODE上查看代码片派生到我的代码片01.for(var i=0,len=mods.length;i<len;i++){
02. try{
03. mods[i].init();
04. }catch(ex){
05. logError('非致命错误','模块初始化失败:'+ex.message);
06. }
07.}
JavaScript处理错误
最新推荐文章于 2024-04-26 17:04:15 发布