JS常见错误(Error)及处理方案详解


Posted in Javascript onJuly 02, 2020

 1. 错误的类型

Error: 所有错误的父类型

错误的子类型包括:

  • ReferenceError: 引用的变量不存在

  • TypeError: 数据类型不正确的错误

  • RangeError: 数据值不在其所允许的范围内

  • SyntaxError: 语法错误

常见的内置错误:

(1)ReferenceError: 引用变量不存在

console.log(a) //ReferenceError: a is not defined

(2)TypeError: 数据类型不正确

var b = {}
b.xxx() //TypeError: b.xxx is not a function

(3)RangeError: 数据值不在其所允许的范围内

function fn(){
fn()
}
fn() //RangeError: Maximum call stack size exceeded

(4)SyntaxError: 语法错误

const c = """" //SyntaxError: Unexpected string

2. 错误处理

捕获错误: try ... catch

抛出错误: throw error

(1)捕获错误

try {
  let d
  console.log(d.xxx)
} catch (error) { //可以通过调试查看error对象的属性(message属性: 错误相关信息;stack属性: 函数调用栈记录信息)
 console.log(error.message)
 //console.log(error.stack)
}
// 可以继续向下执行
console.log('出错之后')

(2)抛出错误

function something() {
  if (Date.now() % 2 === 1 ){
  console.log('当前时间为奇数,可执行任务')
  } else {
  throw new Error('当前时间为偶数无法执行任务')
  }
}

//情况1 直接调用
something() //Error: 当前时间为偶数无法执行任务
console.log('something之后') //不会继续这句代码(没有对异常进行处理)

//情况2 捕获处理异常
try {
 something()
} catch(error) {
 console.log(error.message)
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
关于viewport,Ext.panel和Ext.form.panel的关系
May 07 Javascript
jQuery入门第一课 jQuery选择符
Mar 14 Javascript
JQuery中extend的用法实例分析
Feb 08 Javascript
一不小心就做错的JS闭包面试题
Nov 25 Javascript
最全面的JS倒计时代码
Sep 17 Javascript
原生Javascript和jQuery做轮播图简单例子
Oct 11 Javascript
JS中setTimeout和setInterval的最大延时值详解
Feb 13 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
Nov 22 Javascript
微信小程序常见页面跳转操作简单示例
May 01 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
Sep 13 Javascript
Vue 图片压缩并上传至服务器功能
Jan 15 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
May 23 Javascript
vue过滤器实现日期格式化的案例分析
Jul 02 #Javascript
Vue使用预渲染代替SSR的方法
Jul 02 #Javascript
node运行js获得输出的三种方式示例详解
Jul 02 #Javascript
基于小程序请求接口wx.request封装的类axios请求
Jul 02 #Javascript
JS异步宏队列与微队列原理区别详解
Jul 02 #Javascript
微信小程序自定义扫码功能界面的实现代码
Jul 02 #Javascript
JS字符串和数组如何实现相互转化
Jul 02 #Javascript
You might like
Zend Framework实现将session存储在memcache中的方法
2016/03/22 PHP
PHP array_shift()用法实例分析
2019/01/07 PHP
PHP应用跨时区功能的实现方法
2019/03/21 PHP
JavaScript 学习历程和心得分享
2010/12/12 Javascript
js 调用百度地图api并在地图上进行打点添加标注
2014/05/13 Javascript
自写的jQuery异步加载数据添加事件
2014/05/15 Javascript
jQuery/CSS3图片特效插件整理推荐
2014/12/07 Javascript
Javascript基础教程之函数对象和属性
2015/01/18 Javascript
js实现支持手机滑动切换的轮播图片效果实例
2015/04/29 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
详解JavaScript中this关键字的用法
2016/05/26 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
JS新包管理工具yarn和npm的对比与使用入门
2016/12/09 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
使用JSON格式提交数据到服务端的实例代码
2018/04/01 Javascript
vuex的使用和简易实现
2021/01/07 Vue.js
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
2016/02/18 Python
Python编程修改MP3文件名称的方法
2017/04/19 Python
centos6.4下python3.6.1安装教程
2017/07/21 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
2017/07/24 Python
Django后台admin的使用详解
2019/07/08 Python
利用python绘制数据曲线图的实现
2020/04/09 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
加拿大鞋子连锁店:Town Shoes
2016/09/26 全球购物
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
xml有哪些解析技术?区别是什么
2016/04/26 面试题
给交警的表扬信
2014/01/12 职场文书
我的五年职业生涯规划
2014/01/23 职场文书
座谈会主持词
2014/03/20 职场文书
《春天来了》教学反思
2014/04/07 职场文书
房屋转让协议书
2014/04/11 职场文书
七一讲话心得体会
2014/09/05 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
如何利用opencv判断两张图片是否相同详解
2021/07/07 Python
python画条形图的具体代码
2022/04/20 Python