问题解决11:try-catch -finally中有无return

版权声明:本文为博主原创文章,未经博主允许不得转载。如需要授权请联系[email protected] https://blog.csdn.net/leeue/article/details/86693690

一、只有try中有return

在这里插入图片描述

肯定会执行finally这个语句,但是在执行return的时候,会将try当中要返回的t放在缓存区。
所以返回的时候还是"try字符"

二、当catch中也有return的时候,且报异常

跟上面的情况一样,肯定不会执行try中的return了。但是还是会执行finally中的语句。
不过finally没有return,所以还是返回catch字符。

在这里插入图片描述


三、有三个return。没有异常

在这里插入图片描述


在这里插入图片描述


总结:
1、当finally有return的时候,返回的finally 中的return 中的值。
2、当finally没有return的时候,返回的try中的值。finally不管怎么修改,都改变不了try中返回的值。已经放在了缓存区中了。
3、finally中的语句始终会执行。

猜你喜欢

转载自blog.csdn.net/leeue/article/details/86693690