try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行?
try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行?什么时候被执行,在return前还是后?
我们将结果总结如下:
1.若try{}中没有异常,则try{}中语句执行到return前一句,然后执行fianlly{}中的语句,最后回头执行try{}中的return语句。
2.若try{}中会产生异常,则在执行了会产生异常的语句之后就立马进入到catch{}语句块中,这时存在两种情况:
第一种情况:如果catch{}中没有return语句,则在执行完catch{}中的代码之后就执行fianlly{}中的语句,最后直接结束程序,并不会回到try{}中执行它的return语句。
第二种情况:
如果catch{}中含有return语句,则在执行完catch{}中的return的前一语句时直接进入fianlly{}中执行代码,最后回头执行catch{}中的return语句,而不是执行try{}中的return语句。