摘要: 欢迎来到“Under The Hood”第七期。本期我们介绍JVM处理finally子句的方式及相关字节码。你可能需要阅读往期的文章才能更好的理解本文。
finally子句
JVM执行Java字节码时,它有几种方式可以退出一个代码块(花括号中间的语句)。其中之一,就是简单的执行完其中所有的语句,然后退出代码块。第二种,JVM可能会在代码块中间的任何一处,遇到像break,continue,return之类的语句,强制它跳出该代码块。第三种,JVM可能会在执行过程中,出现了异常,然后它跳转到匹配的catch子句,或者没有找到相应的catch子句,直接退出当前线程。由于单个代码块有如此多的潜在退出点(exit point),拥有一个简单的方式来表达“无论代码块以什么方式退出,有些事情总能发生”是很值得的。然后就有了try-finally子句。
阅读全文