目录
-
- try-catch 语句:作用捕获异常语句
- js的错误类型:
例如acynk去请求报错了,可以打印错误,并继续代码运行
try-catch 语句:作用捕获异常语句 执行流程:
先执行try中的语句,如果有错误,就会将错误抛出,并且被catch捕获并去执行
,这时候就会执行catch里的语句,而且不论try中有没有抛出和错误,finally语句都会去执行其中自己的代码块
我们来看下常见的一些错误:
console.log(a);
//Uncaught ReferenceError(引用错误): a is not defined var b = 'hello'
b();
//Uncaught TypeError(类型错误): b is not a function
我们来看下try-catch的用法:
try {console.log(a);
} catch {
/一旦代码出错,自动执行catch语句,
console.log('代码出错了');
}
注意: !!!!!!!!! 如果不需要输出错误信息,catch 后不需要()
如果需要输出错误信息,对错误进行处理; catch 需要() 并且需要传入一个参数err (就是错误信息,这里用err语义化,可以用a);
try {
console.log(a);
} catch (err) {
//捕获 err 就是错误信息,
console.log(err);
}
文章图片
我们看到这个输出结果和下面这样的信息相同
文章图片
finally 不管代码是否出错,都会执行
先来看不出错的情况
try {
console.log(1);
} catch (err) {
console.log(err);
} finally {
//finally此处的代码始终都会执行
console.log('代码执行了');
}
文章图片
再来看下出错的情况
try {
console.log(a);
} catch (err) {
console.log(err);
} finally {
//finally此处的代码始终都会执行
console.log('代码执行了');
}
finally此处的代码始终都会执行
文章图片
js的错误类型:
- 1.SyntaxError(语法错误)
- 2.ReferenceError(引用错误)
- 3.RangeError(范围错误)
- 4.TypeError(类型错误)
- 5.URLError(URL错误)
- 【try-catch 语句(作用捕获异常语句,以及常见的错误)】6.EvalError(eval错误)
-
- Error(错误)
【EvalError(eval错误)】
eval函数没有被正确执行时,会抛出EvalError错误。该错误类型已经不再在ES5中出现了,只是为了保证与以前代码兼容,才继续保留
【RangeError(范围错误)】
RangeError类型的错误会在一个值超出相应范围时触发,主要包括超出数组长度范围以及超出数字取值范围等
new Array(-1); //Uncaught RangeError: Invalid array length
【ReferenceError(引用错误)】
引用一个不存在的变量或左值(lvalue)类型错误时,会触发ReferenceError(引用错误)
console.log(a);
//Uncaught ReferenceError(引用错误): a is not defined
【SyntaxError(语法错误)】
当不符合语法规则时,会抛出SyntaxError(语法错误)
【TypeError(类型错误)】
在变量中保存着意外的类型时,或者在访问不存在的方法时,都会导致TypeError类型错误。错误的原因虽然多种多样,但归根结底还是由于在执行特定类型的操作时,变量的类型并不符合要求所致
var b = 'hello'
b();
//Uncaught TypeError(类型错误): b is not a function
【URIError(URI错误)】
URIError是URI相关函数的参数不正确时抛出的错误,主要涉及encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()这六个函数
decodeURI('%2');
// URIError: URI malformed
推荐阅读
- JS|Chrome浏览器使用Overrides调试线上代码的技巧
- 微信小程序|【你踩的坑这里都有】微信小程序分包指南
- #|通过JavaScript、css、H5 实现简单的tab栏的切换和复用
- #|通过JavaScript 实现简单的全选、不全选的思想
- JavaScript|数组乱序、数组去重
- 前端|越来越快的jsRuntime——Bun
- js|Windows 下安装 Bun(像 Node 或 Deno 一样的现代 JavaScript 运行时)
- Vue项目导出|前端使用vue实现导出pdf
- java|Web自动化神器,批量下载小姐姐美图,可直接导入使用