1、异常类型
1、语法错误(SyntaxError)
代码不符合语法规范时触发,例如缺少符号或拼写错误
2、引用错误(ReferenceError)
引用未声明的变量时发生,例如调用未定义的函数或变量
3、类型错误(TypeError)
操作不符合数据类型时发生,例如对字符串进行数学运算
4、范围错误(RangeError)
数值超出有效范围时触发,例如创建长度为负数的数组或递归调用导致堆栈溢出
5、URI错误(URIError)
处理不符合规范的 URL 或编码函数参数时触发
// 语法错误
conste a = 1;
Uncaught SyntaxError: Unexpected identifier 'a'
// 引用错误
b.toStrng()
Uncaught ReferenceError: b is not defined
// 类型错误
const a = {}
a.forEach(x=>x)
Uncaught TypeError: a.forEach is not a function
// 范围错误
const arr = [];
arr.length = -1;
Uncaught RangeError: Failed to set the 'length' property on 'Array': Invalid array length
// URL错误
decodeURIComponent('%E4%BD%A0%');
VM485:1 Uncaught URIError: URI malformed
2、异常捕获
try {
// 可能抛出错误的代码
} catch (error) {
console.log(error.message);
} finally {
// 可省略,无论是否有异常,都会执行此行代码
}
3、抛出异常
可以手动抛出异常,也可以抛出不同异常类型的错误
throw new Error('这是一个错误')
throw new TypeError('这是一个类型错误')
throw new RangeError('这是一个范围错误')
1402

被折叠的 条评论
为什么被折叠?



