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 写类方式之六
Jul 05 Javascript
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
Feb 14 Javascript
java和javascript获取word文档的书签位置对比
Jun 19 Javascript
javascript基于HTML5 canvas制作画箭头组件
Jun 25 Javascript
js获取数组的最后一个元素
Apr 14 Javascript
基于JS实现PHP的sprintf函数实例
Nov 14 Javascript
javascript计时器编写过程与实现方法
Feb 29 Javascript
分享10个优化代码的CSS和JavaScript工具
May 11 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
Sep 18 Javascript
详解ES6中的 Set Map 数据结构学习总结
Nov 06 Javascript
iview实现select tree树形下拉框的示例代码
Dec 21 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
Aug 12 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面向对象的方法重载两种版本比较
2008/09/08 PHP
php中time()和mktime()方法的区别
2013/09/28 PHP
mac环境中使用brew安装php5.5.15
2014/08/18 PHP
php比较两个字符串长度的方法
2015/07/13 PHP
深入理解PHP内核(一)
2015/11/10 PHP
php中get_magic_quotes_gpc()函数说明
2017/02/06 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
jquery1.4后 jqDrag 拖动 不可用
2010/02/06 Javascript
屏蔽F1~F12的快捷键的js函数
2010/05/06 Javascript
JS 树形递归实例代码
2010/05/18 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
js动态添加onclick事件可传参数与不传参数
2014/07/29 Javascript
javascript 原型链维护和继承详解
2014/11/26 Javascript
使用pjax实现无刷新更改页面url
2015/02/05 Javascript
javascript最基本的函数汇总
2015/06/25 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
2015/11/20 Javascript
angular分页指令操作
2017/01/09 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
vue日历/日程提醒/html5本地缓存功能
2019/09/02 Javascript
微信小程序基于movable-view实现滑动删除效果
2020/01/08 Javascript
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
python 3.7.0 下pillow安装方法
2018/08/27 Python
浅谈Python批处理文件夹中的txt文件
2019/03/11 Python
python 整数越界问题详解
2019/06/27 Python
python打印异常信息的两种实现方式
2019/12/24 Python
python爬虫构建代理ip池抓取数据库的示例代码
2020/09/22 Python
python 使用三引号时容易犯的小错误
2020/10/21 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
abstract class和interface有什么区别
2013/08/04 面试题
广告业务员岗位职责
2014/02/06 职场文书
公司财务流程之主管工作流程
2014/03/03 职场文书
体育之星事迹材料
2014/05/11 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
商业门面租房协议书
2014/11/25 职场文书
长城的导游词
2015/01/30 职场文书