javascript 中的try catch应用总结


Posted in Javascript onApril 01, 2017

javascript 中的try catch应用总结

实例代码:

<script language="JavaScript"> 
try 
{ 
throw new Error(10,"asdasdasd") 
} 
catch (e) 
{ 
alert(e.message); 
alert(e.description) 
alert(e.number) 
alert(e.name) 
throw new Error(10,"asdasdasd") 
} 

</script>

在JavaScript可以使用try...catch来进行异常处理。例如: 

try {
 foo.bar();
} catch (e) {
 alert(e.name + ": " + e.message);
}

目前我们可能得到的系统异常主要包含以下6种:

  1. EvalError: raised when an error occurs executing code in eval() 
  2. RangeError: raised when a numeric variable or parameter is outside of its valid range 
  3. ReferenceError: raised when de-referencing an invalid reference 
  4. SyntaxError: raised when a syntax error occurs while parsing code in eval() 
  5. TypeError: raised when a variable or parameter is not a valid type 
  6. URIError: raised when encodeURI() or decodeURI() are passed invalid parameters 

上面的六种异常对象都继承自Error对象。他们都支持以下两种构造方法:

new Error();
new Error("异常信息");

手工抛出异常的方法如下:

try {
 throw new Error("Whoops!");
} catch (e) {
 alert(e.name + ": " + e.message);
}

如要判断异常信息的类型,可在catch中进行判断:

try {
 foo.bar();
} catch (e) {
 if (e instanceof EvalError) {
   alert(e.name + ":" + e.message);
 } 
 else if (e instanceof RangeError) {
   alert(e.name + ": " + e.message);
 } 
 // etc 
}

Error具有下面一些主要属性:

  1. description: 错误描述 (仅IE可用). 
  2. fileName: 出错的文件名 (仅Mozilla可用). 
  3. lineNumber: 出错的行数 (仅Mozilla可用). 
  4. message: 错误信息 (在IE下同description) 
  5. name: 错误类型. 
  6. number: 错误代码 (仅IE可用). 
  7. stack: 像Java中的Stack Trace一样的错误堆栈信息 (仅Mozilla可用). 

因此为了更好的了解错误信息我们可以将catch部分改为如下形式: 

try {
 foo.bar();
} catch (e) {
 if (browserType != BROWSER_IE) {                
   alert("name: " + e.name + 
   "message: " + e.message + 
   "lineNumber: " + e.lineNumber + 
   "fileName: " + e.fileName + 
   "stack: " + e.stack);      
 } 
 else {            
   alert("name: " + e.name +    
   "errorNumber: " + (e.number & 0xFFFF ) + 
   "message: " + e.message");      
 } 
}

JavaScript中的throw命令事实上可以抛出任何对象,并且我们可以在catch接受到此对象。例如:

try {
 throw new Date(); // 抛出当前时间对象 
} catch (e) {
 alert(e.toLocaleString()); // 使用本地格式显示当前时间 
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
js鼠标滑过弹出层的定位IE6bug解决办法
Dec 26 Javascript
js实现字符串和数组之间相互转换操作
Jan 12 Javascript
APP中javascript+css3实现下拉刷新效果
Jan 27 Javascript
Canvas 绘制粒子动画背景
Feb 15 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
Jun 19 Javascript
浅谈vue2 单页面如何设置网页title
Nov 08 Javascript
Vue实现页面添加水印功能
Nov 09 Javascript
Vue列表循环从指定下标开始的多种解决方案
Apr 08 Javascript
OpenLayers实现图层切换控件
Sep 25 Javascript
jquery实现拖拽小方块效果
Dec 10 jQuery
JS addEventListener()和attachEvent()方法实现注册事件
Jan 11 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
Feb 25 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
Apr 01 #Javascript
ES6新特性之字符串的扩展实例分析
Apr 01 #Javascript
Vue.js实战之利用vue-router实现跳转页面
Apr 01 #Javascript
ES6新特性之函数的扩展实例详解
Apr 01 #Javascript
vue-cli的webpack模板项目配置文件分析
Apr 01 #Javascript
ES6新特性之模块Module用法详解
Apr 01 #Javascript
Vue.js实战之组件之间的数据传递
Apr 01 #Javascript
You might like
解决文件名解压后乱码的问题 将文件名进行转码的代码
2012/01/10 PHP
php class类的用法详细总结
2013/10/17 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
2014/09/02 PHP
php隐藏实际地址的文件下载方法
2015/04/18 PHP
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
JavaScript 函数调用规则
2009/09/14 Javascript
nodejs URL模块操作URL相关方法介绍
2015/03/03 NodeJs
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
jQuery实现的自定义轮播图功能详解
2018/12/28 jQuery
js字符串类型String常用操作实例总结
2019/07/05 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
[01:18:33]Secret vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
详解pyppeteer(python版puppeteer)基本使用
2019/06/12 Python
Python实现字符串中某个字母的替代功能
2019/10/21 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
2020/02/10 Python
使用 css3 实现圆形进度条的示例
2017/07/05 HTML / CSS
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
《蚕姑娘》教学反思
2014/04/15 职场文书
优秀少先队工作者事迹材料
2014/05/13 职场文书
党员领导干部承诺书
2014/05/28 职场文书
小学生十佳少年事迹材料
2014/08/20 职场文书
房屋维修协议书范本
2014/09/25 职场文书
精神病医院见习报告
2014/11/03 职场文书
社区好人好事材料
2014/12/26 职场文书
2015年助残日活动总结
2015/03/27 职场文书
CSS3实现三角形不断放大效果
2021/04/13 HTML / CSS
万能密码的SQL注入漏洞其PHP环境搭建及防御手段
2021/09/04 SQL Server
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript
SQLServer RANK() 排名函数的使用
2022/03/23 SQL Server
MySQL导致索引失效的几种情况
2022/06/25 MySQL