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>

结果: