JavaScript 同样的内置了 try catch 这套现代的 异常处理机制,很方便我们在编程中,提前对那些有可能遇见到的错误进行处理。
try { // 尝试执行
b = a + 1
} catch (e) { // 出现错误,对错误进行捕获
console.log('当前错误信息:' + e.message)
}
try catch 语法的补充。
try {
} catch (e) {
} finally {
console.log(1) // 无论 try 成功还是失败,finally 都会被执行
}
通过 catch 捕获到的错误,是有多种类型的,每种类型描述了相应的错误问题。
try {
b = a + 1
} catch (e) {
console.log(e instanceof Error) // true
console.log(e instanceof ReferenceError) // true | 引用错误
console.log(e instanceof SyntaxError) // false | 语法错误
}
/*
所有错误类型都是 Error 的派生类
Error
+-- SyntaxError
+-- ReferenceError
+-- RangeError
+-- TypeError
+-- URIError
+-- EvalError
*/
我们也能自定义错误,然后让解释器报错。
try {
throw new TypeError('1') // 抛出一个类型错误
} catch (e) {
console.log(e) // 捕获 | TypeError: 1
}
catch 没办法捕获到异步执行抛出的错误。
try {
setTimeout(() => {
throw new Error('1')
}, 1000)
} catch (e) {
// 无法捕获 new Error('1')
}
JavaScript 数据类型
JavaScript 数字
JavaScript 字符串
JavaScript 数组
JavaScript 对象
JavaScript Map
JavaScript Set
JavaScript null
JavaScript undefined
JavaScript 类型检测
JavaScript 包装对象
JavaScript 函数
JavaScript 参数
JavaScript 匿名函数
JavaScript 箭头函数
JavaScript 递归
JavaScript 闭包
JavaScript 生成器
JavaScript 异步
JavaScript setTimeout
JavaScript setInterval
JavaScript 回调
JavaScript Promise
JavaScript async await