JavaScript try-catch语句
这不是一个 bug,这只是一个未列出来的特性。——匿名
在开发中,常会遇到错误。为了方便调试错误,就有了try-catch语句。
语法
try{
//要尝试的代码
}catch(e){
//处理错误
}
在ES2020后,可以不把错误赋值给私有变量:
try{
//要尝试的代码
}catch{
//处理错误,但不使用错误对象
}
现在,来看看错误对象包括什么。
try{undefined();}catch(e){console.log(e)}
TypeError: undefined is not a function
at :1 ```
可以通过instanceof 来检查错误类型:
try{undefined();}catch(e){
console.log(e instanceof TypeError)}//true
现在,看看不使用错误对象:
try{
//要尝试的代码
undefined()
}catch{
//处理错误,但不使用错误对象
alert('err')
}
注意:在try-catch语句中发生错误不会触发window对象的error时间
抛出错误
如何抛出错误呢?
ECMA Script有以下几种错误:
- Error基本错误类型,所有错误都继承它;
- 语法错误 SyntaxError
- 范围错误 RangeError
- 类型错误 TypeError
- URI错误 URIError
- eval函数执行错误 EvalError
这部分内容参考https://blog.csdn.net/weixin_43988919/article/details/115322019
可以通过throw语句抛出它们,默认抛出Error: