这个得分情况:
1,当try块中存在System.exit(0);语句的时候,会使得当前线程中断执行,其实就是java虚拟机进程会结束,java虚拟机退出系统,当然就不会执行finally块中的语句了。
2,如果try块中有return语句,没有System.exit(0);,在return语句返回值之前,线程会去寻找方法中是否有finally块,有的话则在执行完finally块中的语句之后,再返回try中执行return并返回值给方法。还有一种情况是,如果finally块中也存在return语句,那么这个return语句会直接使得方法结束并返回值给方法,而不会回到try中去执行那个return语句。
这个具体在《疯狂java 突破程序员基本功的16课》这本书中有讲到,恰好最近看过那本书,希望对你有用。 |