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 相关文章推荐
JQuery 学习笔记 选择器之二
Jul 23 Javascript
自写简单JS判断是否已经弹出页面
Oct 20 Javascript
js实现点小图看大图效果的思路及示例代码
Oct 28 Javascript
js实现ifram取父窗口URL地址的方法
Feb 09 Javascript
JS实现可展开折叠层的鼠标拖曳效果
Oct 09 Javascript
理解Javascript的call、apply
Dec 16 Javascript
JavaScript记录光标在编辑器中位置的实现方法
Apr 22 Javascript
angular2倒计时组件使用详解
Jan 12 Javascript
AngularJS遍历获取数组元素的方法示例
Nov 11 Javascript
详解vue 数据传递的方法
Apr 19 Javascript
vue 动态绑定背景图片的方法
Aug 10 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
Dec 03 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
php 操作excel文件的方法小结
2009/12/31 PHP
简单的cookie计数器实现源码
2013/06/07 PHP
AJAX的跨域访问-两种有效的解决方法介绍
2013/06/22 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
javascript 建设银行登陆键盘
2008/06/10 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
前后台交互过程中json格式如何解析以及如何生成
2012/12/26 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
Javascript实现一个简单的输入关键字添加标签效果实例
2017/06/01 Javascript
代码详解Vuejs响应式原理
2017/12/20 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
2018/08/24 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
JavaScript实现简单动态表格
2020/12/02 Javascript
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
[57:22]完美世界DOTA2联赛PWL S2 FTD vs PXG 第二场 11.27
2020/12/01 DOTA
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
Python中实现参数类型检查的简单方法
2015/04/21 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
Python实现一个服务器监听多个客户端请求
2018/04/12 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
python实现批量注册网站用户的示例
2019/02/22 Python
Python : turtle色彩控制实例详解
2020/01/19 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
2020/03/06 Python
Numpy 多维数据数组的实现
2020/06/18 Python
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
2021/03/05 HTML / CSS
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
夜大毕业生自我评价分享
2013/11/10 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
2016大学生党校学习心得体会
2016/01/06 职场文书
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
2021/10/16 Python