一、只有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中的语句始终会执行。