JavaScript处理错误
2017-01-03 21:59
459 查看
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.}
相关文章推荐
- jstree的基本使用例子
- JavaScript基础——使用Canvas画图
- ROT13密码
- 使用JavaScript为一张图片设置备选路径
- HTML5+CSS3+JS学习笔记-12-使用JS及函数来制作表格加上3D透视效果
- 你所不知道的 Console
- JavaScript高级程序设计12--表单脚本
- JavaScript中绑定事件的几种方式
- Javascript异步编程的4种方法
- JavaScript 多个属性一起变化
- 数组操作总结(javascript)
- 关于如何获取url中的参数的值
- js使用模板快速填充数据
- js动态生成html表格
- jq窗口大小变化事件
- JS返回上一页之后刷新页面
- web 列表切换
- JSP 内置对象
- C#通用类:json转换为对象,对象序列化XML
- for循环里面的方法用setTimeOut定时调用