try finally return

我们都知道在try-catch-finally中,try块先执行,如果捕获到异常,则执行catch块,如果没有捕获到异常,那么catch块始终不执行,在catch块执行完之后,finally块最后执行。
则那么问题来了(假设都没有捕获异常)
1,如果try块中有return语句,那么finally会执行吗?
答案:会

2,如果finally块中改变了try块中的return语句要返回的值,那么返回值会改变吗?
答案:不会(相当已经把变量复制一份只需要返回了。之前的变量已经确定了。finally中的变量修改也不会影响复制过的变量了)

3,如果finally块中有return语句,那么函数会通过try块中的return返回还是通过try块中的return返回?

答案:通过finally块中的return返回。

详情和例子看连接
原文链接:https://blog.csdn.net/weixin_42033925/article/details/103596387

posted @ 2022-07-14 23:40  首先我们把锅烧热  阅读(24)  评论(0编辑  收藏  举报