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 相关文章推荐
使用Firebug对js进行断点调试的图文方法
Apr 02 Javascript
JS基于Mootools实现的个性菜单效果代码
Oct 21 Javascript
最全面的百度地图JavaScript离线版开发
Sep 10 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
Sep 14 Javascript
jquery实现简单的瀑布流布局
Dec 11 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
Dec 29 Javascript
jQuery实现碰到边缘反弹的动画效果
Feb 24 jQuery
redux中间件之redux-thunk的具体使用
Apr 17 Javascript
JavaScript设计模式之单例模式简单实例教程
Jul 02 Javascript
原生js实现form表单序列化的方法
Aug 02 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
Nov 15 Javascript
js实现筛选功能
Nov 24 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调用dll的实例操作动画与代码分享
2012/08/14 PHP
深入密码加salt原理的分析
2013/06/06 PHP
PHP和C#可共用的可逆加密算法详解
2015/10/26 PHP
laravel自定义分页效果
2017/07/23 PHP
PHP判断一个数组是另一个数组子集的方法详解
2017/07/31 PHP
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
详解Bootstrap创建表单的三种格式(一)
2016/01/04 Javascript
详解JavaScript中的事件流和事件处理程序
2016/05/20 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
jQuery UI仿淘宝搜索下拉列表功能
2017/01/10 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
[01:10:58]KG vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python版微信红包分配算法
2015/05/04 Python
Python中pip安装非PyPI官网第三方库的方法
2015/06/02 Python
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
Python3爬虫使用Fidder实现APP爬取示例
2018/11/27 Python
jupyter notebook参数化运行python方式
2020/04/10 Python
Python中常见的数制转换有哪些
2020/05/27 Python
pycharm实现猜数游戏
2020/12/07 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
通往英国高街的商店橱窗:Down Your High Street
2020/07/19 全球购物
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
乡镇办公室工作决心书
2014/03/11 职场文书
地理教师岗位职责
2014/03/16 职场文书
《菜园里》教学反思
2014/04/17 职场文书
售后服务承诺书模板
2014/05/21 职场文书
工作能力自我评价2015
2015/03/05 职场文书
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL