参考网址
前言
大意就是如果在try中return的情况下,先把try中将要return的值先存到一个本地变量中,
即本例中的x=2将会被保存下来。
接下来去执行finally语句,最后返回的是存在本地变量中的值,即返回x=2.
Notes:还有一点要注意的,如果你在finally里也用了return语句,比如return ++x。
那么程序返回值会是3。
因为规范规定了,当try和finally里都有return时,会忽略try的return,而使用finally的return。
结论
当try语句中有return的时候,其与finally语句的执行情况。我们的得到的结论有:
1. try中有return,finally一定会执行。
1. try中有return, 会先将值暂存,无论finally语句中对该值做什么处理,最终返回的都是try语句中的暂存值。
1. 当try与finally语句中均有return语句,会忽略try中return,最后返回的是finally中的return