七、错误处理

1.“JavaScript有一个标准的Error对象表示错误,还有从Error派生的TypeErrorReferenceError等错误对象。我们在处理错误时,可以通过catch(e)捕获的变量e访问错误对象:”

try {...
} catch (e) {if (e instanceof TypeError) {alert('Type error!');} else if (e instanceof Error) {alert(e.message);} else {alert('Error: ' + e);}
}

2.throw new Error('输入错误');抛出Error对象并且会被catch语句捕获,“JavaScript允许抛出任意对象,包括数字、字符串,但最好还是抛出一个Error对象,并且用catch捕获错误时,一定要编写错误处理语句,但也不要用alert()把错误显示给用户,可以在控制台打印错误信息。”

3.“不必在每一个函数内部捕获错误,因为如果当前函数没有错误处理语句,则错误会抛出到外层调用函数,只需要在合适的地方统一捕获并处理即可。”

4.“无法在调用异步代码时捕获(回调函数中的)错误,因为在捕获的当时,回调函数并未执行”,以下代码中,因为无法捕捉回调函数printTIme()中的错误,所以无法打印得到error

function printTime() {throw new Error();
}try {setTimeout(printTime, 1000);console.log('done');
} catch (e) {console.log('error');
}

“处理一个事件时,在绑定事件的代码处,无法捕获事件处理函数的错误”

5.练习,针对以下表单,捕获事件处理函数的错误:

<form><input id="x"> + <input id="y"><button id="calc" type="button">计算</button>
</form>
'use strict';var $btn = $('#calc');// 取消已绑定的事件:
$btn.off('click');
$btn.click(function () {try{varx = parseFloat($('#x').val()),y = parseFloat($('#y').val()),r;if (isNaN(x) || isNaN(y)) {throw new Error('输入有误');}r = x + y;alert('计算结果:' + r);}catch(e){alert('输入有误!');}
});

JavaScript学习笔记(七)相关推荐

  1. javascript学习笔记(七) 函数

    1.函数内部属性 arguments arguments用来保存函数的参数,arguments.callee指向拥有arguments对象的函数 1 //阶乘 2 function factorial ...

  2. JavaScript学习笔记(七)——厚积薄发之小成果

    JavaScript学习笔记(七)--厚积薄发之小成果 目前我先列好提纲,利用每晚和周末的闲暇时间,将逐步写完 ^_^ 转载于:https://www.cnblogs.com/wdpp/archive ...

  3. window的dos命令学习笔记 七

    文章目录 一.dos历史学习笔记(后期整合到这里,我想能学到这里的应该不多了,嘿嘿,加油) 二.执行状态返回值(`%errorlevel%`,和shell中`$?`相似): 三.视窗 1.color ...

  4. JavaScript学习笔记(六)(Jquery入门)

    JavaScript学习笔记(六) 一.jQuery是什么? 二.jQuery的安装 三.载入事件区别 四.jQuery对象和DOM对象的区别 DOM对象和Jquery对象互转 五.选择器 5.1 j ...

  5. JavaScript学习笔记(五)---cookie、Proxy、服务器、PHP语言、http协议、同步异步、事件轮循机制、ajax编写、接口

    JavaScript学习笔记(五)---cookie.Proxy.服务器.PHP语言.http协议.同步异步.事件轮循机制.ajax编写.接口 1.cookie 1.1cookie概念 1.2cook ...

  6. Java程序猿的JavaScript学习笔记(12——jQuery-扩展选择器)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  7. Java程序猿的JavaScript学习笔记(汇总文件夹)

    最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...

  8. JavaScript学习笔记(五)

    JavaScript学习笔记(五) ①Array类 本地对象 ②Date类 ①Global对象 对象的类型   内置对象 ②Math对象 宿主对象 今天继续学习JS中的对象,昨天内置对象Global对 ...

  9. JavaScript学习笔记(备忘录)

    JavaScript学习笔记(备忘录) ===运算符 判断数值和类型是否相等.如: console.log('s'==='s') //输出trueconsole.log('1'===1) //输出fa ...

  10. Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

最新文章

  1. python如何编写excel_如何用Python编写Excel
  2. 2016年网络诉求:物联网+SDN+自动化
  3. 5月19-20日WebRTCon 2018 梳理全球WebRTC技术实践与案例
  4. nginx里面的rewrite重写模块详解
  5. uni-app echart 使用mpvueEcharts踩坑与流程
  6. 动态代理之Cglib浅析
  7. 剑指offer之重建二叉树
  8. MATLAB图片的保存与导出
  9. linux shell变量作用域,Shell变量的作用域:Shell全局变量、环境变量和局部变量
  10. vue+django 生鲜项目 (二)
  11. matlab中ezplot和plot, fplot这3
  12. chartControl
  13. 斯凯奇诉爱马仕侵权——品牌发展需警惕知识产权侵权
  14. 惠普笔记本苹果w10双系统_苹果电脑安装双系统教程:MacOS和Win10双系统安装教程...
  15. Flutter仿京东商城项目实战视频教程
  16. 全景图航拍的方法,制作航拍全景图的步骤
  17. 车势科技发力汽车VR,继阿里BUY+之后再现VR购物挑战者
  18. python中shelf对象_shelve -- 用来持久化任意的Python对象
  19. express 构建 myapp
  20. 庄小焱——个人基本介绍

热门文章

  1. linux下svn的用法
  2. java 多环境 虚拟环境_Spring profile通过多种方法实现多环境支持
  3. java emoji显示乱码_菜鸟笔记(一) - Java常见的乱码问题
  4. python法则_python复数及计算法则
  5. 如何利用自己的知识设计一块属于自己的单片机开发板
  6. 计算机外部设备的配置及扩展能力也是计算机,计算机1-6修改后.docx
  7. python编程100例讲解_【python】编程语言入门经典100例--4
  8. jQuery数据存储的相关方法
  9. Spring AOP(二)之AfterReturning增强处理
  10. ubuntu14.04中卸载cuda、cudnn