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 传统事件模型构造的事件监听器实现代码
May 31 Javascript
jquery动态增加text元素以及删除文本内容实例代码
Jul 01 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
Dec 17 Javascript
JQuery中extend使用介绍
Mar 13 Javascript
JavaScript优化专题之Loading and Execution加载和运行
Jan 20 Javascript
js canvas仿支付宝芝麻信用分仪表盘
Nov 16 Javascript
BootStrap注意事项小结(五)表单
Mar 10 Javascript
vue2项目使用sass的示例代码
Jun 28 Javascript
微信小程序movable view移动图片和双指缩放实例代码
Aug 08 Javascript
JS为什么说async/await是generator的语法糖详解
Jul 11 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
Sep 18 Javascript
原生js实现自定义滚动条
Jan 20 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新手入门学习方法
2011/05/08 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
PHP批量去除BOM头内容信息代码
2016/03/11 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
jquery1.4后 jqDrag 拖动 不可用
2010/02/06 Javascript
js调用AJAX时Get和post的乱码解决方法
2013/06/04 Javascript
js获取电脑分辨率的思路及操作
2013/11/22 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
JavaScript基础之this详解
2017/06/04 Javascript
微信小程序中button组件的边框设置的实例详解
2017/09/27 Javascript
AngularJS表单验证功能
2017/10/19 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
Python通过select实现异步IO的方法
2015/06/04 Python
Python中py文件引用另一个py文件变量的方法
2018/04/29 Python
python计算列表内各元素的个数实例
2018/06/29 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
python利用openpyxl拆分多个工作表的工作簿的方法
2019/09/27 Python
pycharm实现在虚拟环境中引入别人的项目
2020/03/09 Python
pip安装tensorflow的坑的解决
2020/04/19 Python
Django静态资源部署404问题解决方案
2020/05/11 Python
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
端口镜像是怎么实现的
2014/03/25 面试题
大学生就业推荐信范文
2013/11/29 职场文书
小学校园活动策划
2014/01/30 职场文书
师德个人剖析材料
2014/02/02 职场文书
《我为你骄傲》教学反思
2014/02/20 职场文书
我的中国梦口号
2014/06/16 职场文书
美容院合作经营协议书
2014/10/10 职场文书
python 命令行传参方法总结
2021/05/25 Python
JavaScript正则表达式实现注册信息校验功能
2022/05/30 Java/Android