实用 AI

可在线运行 AI 集合,涵盖 AI 文案生成、写作辅助、AI 绘图与照片修复、AI 配音、字幕生成、语音转录以及 AI 视频创作和数字人等多种 AI 服务

查看详情

try...catch..finally中finally代码块是否一定会执行?

在Java中,try...catch..finally中finally代码块是否一定会执行?比如说下面这段代码。

try {  
    something();  
    return success;  
}  
catch (Exception e) {   
    return failure;  
}  
finally {  
    System.out.println("I don't know if this will get printed out");
}
finallyjavatry catch
2
264
小课
小课2022-05-06 18:50
1 个回答

除了在执行finally代码块之前出现了以下几种情况,finally代码块都会在执行完try...catch之后执行。

  • 调用了退出进程的方法,比如说Runtime.getRuntime().halt(int)、Runtime.getRuntime().exit(int)、System.exit(int)等。
  • 虚拟机发生崩溃或者虚拟机进程被系统强制终止。
  • finally所在的线程是守护线程(daemon thread),而其它所有的非守护线程都已经结束。
2
小课
小课2022-05-06 18:52
你的回答

内容