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 相关文章推荐
JavaScript 语法集锦 脚本之家基础推荐
Nov 15 Javascript
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
Dec 09 Javascript
让IE8浏览器支持function.bind()方法
Oct 16 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
Nov 16 Javascript
JavaScript 链式结构序列化详解
Sep 30 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
Nov 07 Javascript
vue实现a标签点击高亮方法
Mar 17 Javascript
p5.js临摹动态图形的方法
Oct 23 Javascript
JS中的const命令你真懂它吗
Mar 08 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
May 22 jQuery
解决vue项目运行提示Warnings while compiling.警告的问题
Sep 18 Javascript
Vue使用CDN引用项目组件,减少项目体积的步骤
Oct 30 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
ThinkPHP登录功能的实现方法
2014/08/20 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
PHP安全下载文件的方法
2016/04/07 PHP
JS判断两个时间大小的示例代码
2014/01/28 Javascript
Jquery 实现图片轮换
2015/01/28 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
基于vue2.0+vuex的日期选择组件功能实现
2017/03/13 Javascript
javascript中this用法实例详解
2017/04/06 Javascript
用npm安装vue和vue-cli,并使用webpack创建项目的方法
2018/09/28 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
2019/07/24 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
python 正则式使用心得
2009/05/07 Python
Python中if __name__ == "__main__"详细解释
2014/10/21 Python
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
python scp 批量同步文件的实现方法
2019/01/03 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
500行Python代码打造刷脸考勤系统
2019/06/03 Python
python全栈要学什么 python全栈学习路线
2019/06/28 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
关于tf.matmul() 和tf.multiply() 的区别说明
2020/06/18 Python
python脚本和网页有何区别
2020/07/02 Python
使用Python pip怎么升级pip
2020/08/11 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
泰国网上购物:Shopee泰国
2018/09/14 全球购物
含精油的天然有机化妆品:Indemne
2019/08/27 全球购物
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
laravel使用redis队列实例讲解
2021/03/23 PHP
计算机系毕业生推荐信
2013/11/06 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
幼儿园老师个人总结
2015/02/28 职场文书
部门2015年度工作总结
2015/04/29 职场文书
2019脱贫攻坚工作总结报告范本!
2019/08/06 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书