JavaScript学习笔记(七)
七、错误处理
1.“JavaScript有一个标准的Error
对象表示错误,还有从Error
派生的TypeError
、ReferenceError
等错误对象。我们在处理错误时,可以通过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学习笔记(七)相关推荐
- javascript学习笔记(七) 函数
1.函数内部属性 arguments arguments用来保存函数的参数,arguments.callee指向拥有arguments对象的函数 1 //阶乘 2 function factorial ...
- JavaScript学习笔记(七)——厚积薄发之小成果
JavaScript学习笔记(七)--厚积薄发之小成果 目前我先列好提纲,利用每晚和周末的闲暇时间,将逐步写完 ^_^ 转载于:https://www.cnblogs.com/wdpp/archive ...
- window的dos命令学习笔记 七
文章目录 一.dos历史学习笔记(后期整合到这里,我想能学到这里的应该不多了,嘿嘿,加油) 二.执行状态返回值(`%errorlevel%`,和shell中`$?`相似): 三.视窗 1.color ...
- JavaScript学习笔记(六)(Jquery入门)
JavaScript学习笔记(六) 一.jQuery是什么? 二.jQuery的安装 三.载入事件区别 四.jQuery对象和DOM对象的区别 DOM对象和Jquery对象互转 五.选择器 5.1 j ...
- JavaScript学习笔记(五)---cookie、Proxy、服务器、PHP语言、http协议、同步异步、事件轮循机制、ajax编写、接口
JavaScript学习笔记(五)---cookie.Proxy.服务器.PHP语言.http协议.同步异步.事件轮循机制.ajax编写.接口 1.cookie 1.1cookie概念 1.2cook ...
- Java程序猿的JavaScript学习笔记(12——jQuery-扩展选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿的JavaScript学习笔记(汇总文件夹)
最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...
- JavaScript学习笔记(五)
JavaScript学习笔记(五) ①Array类 本地对象 ②Date类 ①Global对象 对象的类型 内置对象 ②Math对象 宿主对象 今天继续学习JS中的对象,昨天内置对象Global对 ...
- JavaScript学习笔记(备忘录)
JavaScript学习笔记(备忘录) ===运算符 判断数值和类型是否相等.如: console.log('s'==='s') //输出trueconsole.log('1'===1) //输出fa ...
- Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
最新文章
- python如何编写excel_如何用Python编写Excel
- 2016年网络诉求:物联网+SDN+自动化
- 5月19-20日WebRTCon 2018 梳理全球WebRTC技术实践与案例
- nginx里面的rewrite重写模块详解
- uni-app echart 使用mpvueEcharts踩坑与流程
- 动态代理之Cglib浅析
- 剑指offer之重建二叉树
- MATLAB图片的保存与导出
- linux shell变量作用域,Shell变量的作用域:Shell全局变量、环境变量和局部变量
- vue+django 生鲜项目 (二)
- matlab中ezplot和plot, fplot这3
- chartControl
- 斯凯奇诉爱马仕侵权——品牌发展需警惕知识产权侵权
- 惠普笔记本苹果w10双系统_苹果电脑安装双系统教程:MacOS和Win10双系统安装教程...
- Flutter仿京东商城项目实战视频教程
- 全景图航拍的方法,制作航拍全景图的步骤
- 车势科技发力汽车VR,继阿里BUY+之后再现VR购物挑战者
- python中shelf对象_shelve -- 用来持久化任意的Python对象
- express 构建 myapp
- 庄小焱——个人基本介绍
热门文章
- linux下svn的用法
- java 多环境 虚拟环境_Spring profile通过多种方法实现多环境支持
- java emoji显示乱码_菜鸟笔记(一) - Java常见的乱码问题
- python法则_python复数及计算法则
- 如何利用自己的知识设计一块属于自己的单片机开发板
- 计算机外部设备的配置及扩展能力也是计算机,计算机1-6修改后.docx
- python编程100例讲解_【python】编程语言入门经典100例--4
- jQuery数据存储的相关方法
- Spring AOP(二)之AfterReturning增强处理
- ubuntu14.04中卸载cuda、cudnn