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 相关文章推荐
动态刷新 dorado树的js代码
Jun 12 Javascript
再说AutoComplete自动补全之实现原理
Nov 05 Javascript
使用JS读秒使用示例
Sep 21 Javascript
鼠标经过tr时,改变tr当前背景颜色
Jan 13 Javascript
js实现对table动态添加、删除和更新的方法
Feb 10 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
Mar 12 Javascript
Angularjs之filter过滤器(推荐)
Nov 27 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
Jan 21 Javascript
angularjs封装$http为factory的方法
May 18 Javascript
基于Vue过渡状态实例讲解
Sep 14 Javascript
详解Angular Forms中自定义ngModel绑定值的方式
Dec 10 Javascript
如何在JavaScript中创建具有多个空格的字符串?
Feb 23 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
PHP 第二节 数据类型之数值型
2012/04/28 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
php更新cookie内容的详细方法
2019/09/30 PHP
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
js里取容器大小、定位、距离等属性搜集整理
2013/08/19 Javascript
javascript学习笔记(七)Ajax和Http状态码
2014/10/08 Javascript
JavaScript中的this,call,apply使用及区别详解
2016/01/29 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
js实现简单的计算器功能
2017/01/16 Javascript
VUE实现日历组件功能
2017/03/13 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
Node.js中流(stream)的使用方法示例
2017/07/16 Javascript
基于vue 开发中出现警告问题去除方法
2018/01/25 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
使用Python的urllib2模块处理url和图片的技巧两则
2016/02/18 Python
利用python中集合的唯一性实现去重
2020/02/11 Python
简单了解python列表和元组的区别
2020/05/14 Python
python爬取抖音视频的实例分析
2021/01/19 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
美国维生素、补充剂、保健食品购物网站:Vitacost
2016/08/05 全球购物
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
Araks官网:纽约内衣品牌
2020/10/15 全球购物
后勤采购员岗位职责
2013/12/19 职场文书
政法学院毕业生求职信
2014/02/28 职场文书
项目采购员岗位职责
2014/04/15 职场文书
酒店节能减排方案
2014/05/26 职场文书
市场策划求职信
2014/08/07 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
买卖合同协议书范本
2014/10/18 职场文书
政协委员个人总结
2015/03/03 职场文书
对公司的意见和建议
2015/06/04 职场文书
致运动员赞词
2015/07/22 职场文书