js中try-catch的理解
最近在MatLab中看到了try-catch语句的应用,正好今天看到了js中的try-catch语句,就来简单的总结一下吧。
try-catch 语句:作用捕获异常语句
执行流程:先执行try中的语句,如果有错误,就会将错误抛出,并且被catch捕获并去执行,这时候就会执行catch里的语句,而且不论try中有没有抛出和错误,finally语句都会去执行其中自己的代码块
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
try{
console.log(a);
}catch{
console.log(1);
}
</script>
</body>
</html>
因为try中有错误,就会去执行catch中的代码块
执行结果:

try中代码的执行也是顺序的,直到遇到错误位置
在catch语句中遇到错误仍然是会报错的
无论是在try中有没有错误,finally中的代码块都会被执行,并且,如果catch和finally中都存在错误的话,只报错finally中的错误
最后再举一个例子吧
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
(function() {
try{
var a = 1;
console.log(a); //打印a
throw Error(a); //抛出错误a
}catch (a){
console.log("捕获到了错误a:"+a);
console.log(b); //此时b未定义,没有finally的话就会报错
}finally{
console.log("finally执行");
console.log(c); //此时c未定义,会报错;
}
})();
</script>
</body>
</html>
结果:
