JavaScript处理错误

来源:互联网 发布:软件与软件教育现代化 编辑:程序博客网 时间:2024/06/01 12:14
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.}  

0 0