请老师解答

来源:2-13 [拓展]处理报错的语句

慕工程0509258

2022-06-09 12:46:34

问题描述:

这里的try...catch加不加finally有什么区别呢?不用finally也是无论对错肯定会执行,所以finall有什么意义呢?

下载视频          
写回答

1回答

好帮手慕星星

2022-06-09

同学你好,finally 语句在 try 和 catch 之后无论有无异常都会执行。它一般用于释放资源,如数据库连接、文件流等。

当try或catch里有return时,先执行finally,再执行return。例如:

https://img.mukewang.com/climg/62a18b72099647fb04010260.jpg

https://img.mukewang.com/climg/62a18b7a0902e83803030092.jpg

test函数抛出了一个错误,catch中接收错误并返回错误。实际执行过程是,在执行到catch内的return err语句前,会临时保存错误,然后先执行finally语句,最后再返回错误。

也可以参考文档中举得这个例子:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/try...catch#finally%E5%9D%97

https://img.mukewang.com/climg/62a1881d0922cfe108320585.jpg

如果文件打开时有异常,我们可以在看到异常前,在finally中及时关闭文件。了解下即可。

祝学习愉快!

0

前端工程师

前端入门如同写字,如果你不知道从哪开始,那就选择前端(含Vue3.x,React17,TS)

20327 学习 · 17877 问题

查看课程