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 相关文章推荐
javascript 写类方式之七
Jul 05 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
Dec 20 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
Apr 11 jQuery
纯js实现隔行变色效果
Nov 29 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
Mar 06 Javascript
JS遍历DOM文档树的方法实例详解
Apr 03 Javascript
Vue入门之animate过渡动画效果
Apr 08 Javascript
解决vue 绑定对象内点击事件失效问题
Sep 05 Javascript
解决百度Echarts图表坐标轴越界的方法
Oct 17 Javascript
JavaScript内置对象math,global功能与用法实例分析
Jun 10 Javascript
three.js 将图片马赛克化的示例代码
Jul 31 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
Sep 16 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实现从远程下载文件的方法
2015/03/12 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
php微信公众平台开发之获取用户基本信息
2015/08/17 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
laravel 解决多库下的DB::transaction()事务失效问题
2019/10/21 PHP
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
JavaScript实现获取dom中class的方法
2015/02/09 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
从0开始学Vue
2016/10/27 Javascript
基于JavaScript实现轮播图原理及示例
2020/04/10 Javascript
js实现仿购物车加减效果
2017/03/01 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
2018/02/08 Javascript
实例分析vue循环列表动态数据的处理方法
2018/09/28 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
2019/09/24 Javascript
Python爬取京东的商品分类与链接
2016/08/26 Python
Python使用pymongo库操作MongoDB数据库的方法实例
2019/02/22 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
使用Keras画神经网络准确性图教程
2020/06/15 Python
python调用百度API实现人脸识别
2020/11/17 Python
python之随机数函数的实现示例
2020/12/30 Python
如何用 Python 制作一个迷宫游戏
2021/02/25 Python
一篇文章带你学习CSS3图片边框
2020/11/04 HTML / CSS
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
新员工培训个人的自我评价
2013/10/09 职场文书
合作协议书
2014/04/23 职场文书
阅兵口号
2014/06/19 职场文书
新教师培训心得体会
2014/09/02 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
python必学知识之文件操作(建议收藏)
2021/05/30 Python
Tomcat 与 maven 的安装与使用教程
2022/06/16 Servers