Henry Henry
  • JavaScript
  • TypeScript
  • Vue
  • ElementUI
  • React
  • HTML
  • CSS
  • 技术文档
  • GitHub 技巧
  • Nodejs
  • Chrome
  • VSCode
  • Other
  • Mac
  • Windows
  • Linux
  • Vim
  • VSCode
  • Chrome
  • iTerm
  • Mac
  • Obsidian
  • lazygit
  • Vim 技巧
  • 分类
  • 标签
  • 归档
  • 网站
  • 资源
  • Vue 资源
GitHub (opens new window)

Henry

小学生中的前端大佬
  • JavaScript
  • TypeScript
  • Vue
  • ElementUI
  • React
  • HTML
  • CSS
  • 技术文档
  • GitHub 技巧
  • Nodejs
  • Chrome
  • VSCode
  • Other
  • Mac
  • Windows
  • Linux
  • Vim
  • VSCode
  • Chrome
  • iTerm
  • Mac
  • Obsidian
  • lazygit
  • Vim 技巧
  • 分类
  • 标签
  • 归档
  • 网站
  • 资源
  • Vue 资源
GitHub (opens new window)
  • JavaScript

    • js 编码指南
    • 日期使用斜杠 点 中划线分隔的不同
    • forEach 会改变原数组值吗
    • 前端表单验证常用的正则表达式 - reg
    • JS 如何取得 URL 里的参数
    • JavaScript 数组去重
    • JavaScript 循环中断研究与总结-关键字篇
    • JavaScript 循环中断研究与总结-用法篇
    • js 中的 Error
      • Error 的类型
        • Error: 所有错误的父类型
        • ReferenceError: 引用的变量不存在
        • TypeError: 数据类型不正确的错误
        • RangeError: 数据值不在其所允许的范围内
        • SyntaxError: 语法错误
      • Error 的处理
        • 捕获错误: try...catch
        • 抛出错误: throw Error
      • Error 属性
        • message: 错误相关信息
        • stack: 函数调用栈记录信息
    • 跳出 forEach
    • Location 对象
    • Date 方法预览
    • Reg 正则中的问题
    • JavaScript toFixed() 方法
    • query 和 params 的使用区别
    • axios post 请求中下载文件流
    • 实用的 js 技巧
    • JS 之数组的几个不 low 操作
    • 深入浅出深拷贝与浅拷贝
    • 如何实现一个深拷贝
    • 使用 iframe 中的一些问题
    • 在 js 中更好地使用数组
    • echarts 在坐标轴两侧各增加一格坐标
    • 从头认识js的事件循环模型
    • moment 根据周截至日算出指定月有几周及开始结束日期
    • 正则 reg 中 /number 的用法
    • 正则 reg 中 match 和 exec 异同
  • TypeScript

  • Vue

  • ElementUI

  • React

  • AntD

  • 前端
  • JavaScript
Henry
2020-08-22
目录

js 中的 Error

当代码运行时的发生错误, 会创建新的 Error 对象, 并将其抛出.

# Error 的类型

# Error: 所有错误的父类型

当像函数一样使用 Error 时, 如果没有 new , 它将返回一个 Error 对象. 所以, 仅仅调用 Error 产生的结果与通过 new 关键字构造 Error 对象生成的结果相同.

// this:
const x = Error('I was created using a function call!');​​​​ // has the same functionality as this:
const y = new Error('I was constructed via the "new" keyword!');
1
2
3

# ReferenceError: 引用的变量不存在

console.log(a) // ReferenceError: a is not defined
1

# TypeError: 数据类型不正确的错误

let b
console.log(b.xxx) // TypeError: Cannot read property 'xxx' of undefined
1
2
let b = {}
b.xxx() // TypeError: b.xxx is not a function
1
2

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

function fun () {
  fun()
}

fun() // RangeError: Maximum call stack size exceeded
1
2
3
4
5

# SyntaxError: 语法错误

let c = '''' // SyntaxError: Unexpected string
1

# Error 的处理

# 捕获错误: try...catch

try {
  console.log(a)
} catch(err) {
  console.log(err) // ReferenceError: a is not defined
}
1
2
3
4
5

# 抛出错误: throw Error

throw new Error('哎呀, 出错啦!!!')
1

# Error 属性

# message: 错误相关信息

try {
  console.log(a)
} catch(err) {
  console.log(err.message) // a is not defined
}
1
2
3
4
5

# stack: 函数调用栈记录信息

try {
  console.log(a)
} catch(err) {
  console.log(err.stack) // ReferenceError: a is not defined at <anonymous>:2:15
}
1
2
3
4
5
编辑 (opens new window)
#Js
上次更新: 5/27/2023, 1:02:05 PM
JavaScript 循环中断研究与总结-用法篇
跳出 forEach

← JavaScript 循环中断研究与总结-用法篇 跳出 forEach→

最近更新
01
version 1.15
07-01
02
version 1.14
06-27
03
version 1.13
06-27
更多文章>
Theme by Vdoing | Copyright © 2017-2023 HenryTSZ | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式