问题1:一个try catch finally 代码块,如果在try最后又一个return,这个return执行不?
首先前提是:finally的代码一定要执行的。
所以try代码里面执行到return之前时候,会直接跳转到finally代码块,执行完finally之后,再回到try执行return。
如果finally里面有return的话,try中的return不执行。
同理如果发生异常并且catch中也有一个return的话,也会先执行完fianlly的代码之后,再执行catch中的return。
如果finally里面有return的话,catch中的return不执行。
最终结论:任何调用try 或者catch中的return语句之前,都会先执行finally语句,如果finally存在的话。
如果finally中有return语句,那么程序就return了,所以finally中的return是一定会被return的,