文章目录

  • MDN文档
  • 错误类型
  • 错误处理
  • 错误属性
  • 借鉴链接

MDN文档

Error

错误类型

  1. Error:所有错误的父类型
  2. ReferenceError:引用的变量不存在
     console.log(a);//ReferenceError: a is not defined

   console.log(a);//ReferenceError: a is not definedconsole.log('-----');

注意第二行代码,当我写入上述两行代码时,控制台只打印了第一行代码的错误。这是因为没有捕获第一行代码的错误,所以下面的代码不会执行

  1. TypeError:数据类型不正确的错误
var a;
console.log(a.name);// TypeError: Cannot read properties of undefined (reading 'name')

var a = {};
console.log(a.sing());//TypeError: a.sing is not a function


4. RangeError:数据值不在其所允许的范围内

function fn(){fn()
}
fn();//RangeError: Maximum call stack size exceeded


5. SyntaxError:语法错误

int a;
console.log(a);// SyntaxError: Unexpected identifier

错误处理

  • 捕获错误: try … catch

try语句允许我们定义在执行时进行错误测试的代码块。
catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。

try{// 检测错误代码
}catch(err){// 捕获错误并处理
}
  • 抛出错误: throw new Error

throw 语句抛出一个错误,当错误发生时,JavaScript 会停止执行并抛出错误信息

function fn(a,b){if(a > b){console.log(1);}else{throw new Error('我太难嘞')}
}
try{fn(3,4)
}catch(err){console.log(err.message);//我太难嘞
}

如果前一个参数的值小于第二个参数的,会抛出一个异常(err)异常 (err) 通过 catch 语句捕获并自定义输出错误信息

错误属性

  • description: 错误描述 (仅IE可用).
  • fileName: 出错的文件名 (仅Mozilla可用).
  • lineNumber: 出错的行数 (仅Mozilla可用).
  • message: 错误信息 (在IE下同description)
  • name: 错误类型.
  • number: 错误代码 (仅IE可用).
  • stack: 像Java中的Stack Trace一样的错误堆栈信息
 try{let a;console.log(a.name);}catch(error){console.log(error.message);// Cannot read properties of undefined (reading 'name')console.log(error.name);// TypeErrorconsole.log(error.stack);// TypeError: Cannot read properties of undefined (reading 'name') at Error.html:52console.log(error.description);// undefinedconsole.log(error.number);// undefinedconsole.log(error.fileName);// undefinedconsole.log(error.lineNumber);// undefined}

以上是在Chrome浏览器下的执行结果

借鉴链接

hiperion js 的try catch应用

JS中的Error对象相关推荐

  1. Nuxt.js 中定制 error.vue 错误缺省页

    一.介绍 在Nuxt.js项目中,当接口报错或后台数据返回异常时,前端展示就会呈现接口报错的信息,这会给用户非常不好的体验.所以当出现404.500等应用错误时,我们可以在项目的根目录下创建layou ...

  2. js中的DOM对象和jQuery对象的比较

    1. 二者的不同之处: 通过jQuery获取的元素是一个数组, 数组中包含着原生JS中的DOM对象. 例如, 针对下面的一个div结构: <div id="Box">& ...

  3. js中两个对象的比较

    代码取自于underscore.js 1.8.3的isEqual函数. 做了一些小小的修改,主要是Function的比较修改. 自己也加了一些代码解读. <!DOCTYPE html> & ...

  4. JavaScript -- 时光流逝(三):js中的 String 对象的方法

    JavaScript -- 知识点回顾篇(三):js中的 String 对象的方法 (1) anchor(): 创建 HTML 锚. <script type="text/javasc ...

  5. js中关于Blob对象的介绍与使用

    js中关于Blob对象的介绍与使用 blob对象介绍 一个 Blob对象表示一个不可变的, 原始数据的类似文件对象.Blob表示的数据不一定是一个JavaScript原生格式 blob对象本质上是js ...

  6. js mysql json字符串转数组中_php数据库数据转换为js中的json对象

    / 1.在company数据user表中取出10条数据,保存为数组 2.在将数组转化为json格式,传递给js 3.用json解析器将传递过来的json字符串转化为json对象, 4.用documen ...

  7. js中几个对象的区别和用法

    js中几个对象的区别和用法 今天总结一下js中几个对象的区别和用法: 首先来说说 parent.window与top.window的用法 "window.location.href" ...

  8. 【JS笔记】JS中的DOM对象以及通过JS获取DOM结点,操作DOM属性、DOM增删改查

    这篇文章,主要介绍JS中的DOM对象以及通过JS获取DOM结点,操作DOM属性.DOM增删改查​​​​​​​. 目录 一.JS中的DOM 1.1.什么是DOM 1.2.获取DOM结点 (1)获取htm ...

  9. JS中的event 对象详解

    JS中的event 对象详解 JS的event对象 Event属性和方法: 1. type:事件的类型,如onlick中的click: 2. srcElement/target:事件源,就是发生事件的 ...

最新文章

  1. 树莓派学习笔记——GPIO功能学习
  2. 搭建分布式架构4--ZooKeeper注册中心安装
  3. 未越狱设备提取数据_从三星设备中提取健康数据
  4. Android自动化测试探索
  5. 自动生成考勤表_可自动变色的考勤表,逢周末自动更新,你会制作吗?
  6. MySQL的reset master
  7. [转]CocoaChina上一位工程师整理的开发经验(非常nice)
  8. 深度学习优化算法大全系列7:NAdam,算法选择,调参
  9. 手机qq2008触屏版_手机版卖家中心在哪里
  10. c语言谭浩强第八章函数PPT,清华大学C语言谭浩强第八章.ppt
  11. 国外最顶级的人工智能网站资源
  12. React之Hook(四)——使用 Effect Hook
  13. A*搜索 --算法竞赛专题解析(9)
  14. vue3组件之间通信(二)——子传父属性和方法
  15. automagica 调用windows画图以及登录qq
  16. Python opencv 在图片上写字
  17. python程序设计与算法基础江红答案_《Python程序设计与算法基础教程(第二版)》江红 余青松,第十一章课后习题答案...
  18. mac层到ath9k层,ath9k层到硬件层
  19. 不靠研发靠营销,云米科技没“科技”?
  20. 在线订货管理系统的特点

热门文章

  1. Android解包命令:unpackbootimg与打包命令:mkbootimg使用
  2. Linux设备驱动模型三 kset
  3. 建站基础知识之HTML 是何方神圣?
  4. c++字符串加密_【网络爬虫教学】快速定位拼多多加密算法入口(四)
  5. ssms 缺少索引信息_SQLServer索引重建
  6. 深度学习里面的正态分布
  7. springmvc05 传值
  8. 基础03String类、static、Arrays类、Math类
  9. access建立两个字段唯一索引_面试官:谈谈你对mysql索引的认识?
  10. python爬虫定时爬取_如何用框架给python爬虫定时?