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
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
2
let b = {}
b.xxx() // TypeError: b.xxx is not a function
1
2
2
# RangeError: 数据值不在其所允许的范围内
function fun () {
fun()
}
fun() // RangeError: Maximum call stack size exceeded
1
2
3
4
5
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
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
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
2
3
4
5
编辑 (opens new window)
上次更新: 11/12/2020, 6:27:50 AM
- 01
- 搭配 Jenkins 实现自动化打包微前端多个项目09-15
- 02
- 自动化打包微前端多个项目09-15
- 03
- el-upload 直传阿里 oss 并且显示自带进度条和视频回显封面图06-05