1、当try和finally后有return时,会先执行try中的语句和return,然后执行finally中的语句和return,最后返回的是finally中的return语句。
2、同理,catch同上
3、当try后有return而finally中没有时,会先执行try中的语句和return,并将return结果保存在临时域中(应该是函数栈),然后执行finally中的语句,然后再回到try中return。值得注意的是无论在finally中对try中的return语句如何改变,都不会影响最终try中的return值。
4、同理,catch同上
5、不论有无异常,finally中的代码都会执行
6、finally中的代码最好不要包含return,因为finally时会直接return而不会返回try中的return值
7、Try必须要存在,catch和finally可以不存在,但不能同时不存在