finally是否始终执行

本文探讨了Java中finally块在哪些情况下可能不会被执行。包括调用System.exit()、JVM崩溃、try或catch块中有无限循环以及系统断电等情况。此外,如果线程在执行try或catch代码时被中断或终止,finally块也可能不会执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

The only times finally won't be called are:

  1. If you call System.exit()
  2. If the JVM crashes first
  3. If there is an infinite loop in the try block
  4. If the power turns off

以上来自:Does finally always execute in Java?

 

另见Sun Tutorials中的note:



Note: If the JVM exits while the  try or catch code is being executed, then the finally block may not execute. Likewise, if the thread executing the try or catch code is interrupted or killed, the finally block may not execute even though the application as a whole continues.

 

转载于:https://www.cnblogs.com/drizzlewithwind/p/6746639.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值