Java中的Finally
0.一个程序退出时,所有与该程序相关的计算机资源都会被回收。
1.finally 在Java程序更像是一个对线程异常的兜底行为,其出现的原因就是 部分程序异常可能只会导致线程死亡,并不会导致JVM进程退出。当线程意外死亡后,可能会存在一些残留物,如对内存数据的修改是否需要还原,对系统资源的占用如果没有其他线程使用是否需要关闭,以及一些额外的消息的扩散。jvm为我们提供了一种委托机制(finally),我们可以把这些机制委托给jvm,只要jvm进程还在,就能保证finally的执行。
2.我们可以在一些异常块的末尾放上一些可能因为线程意外死亡没法处理的东西。 其他的都可以放在catch里,保守一点也可以把更多东西放在 finally里。
未执行到异常代码块和jvm进程死亡都不能使得finally执行