栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如果运行该函数的线程被中断,finally块会执行吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如果运行该函数的线程被中断,finally块会执行吗?

根据Java指南,“如果执行

try
catch
代码的线程被中断或杀死,则
finally
即使整个应用程序继续运行,该块也可能无法执行。”

这是完整的段落:

finally
始终
try
退出时执行。这样可以确保
finally
即使发生意外异常也可以执行该块。但是,
finally
是的不仅仅是异常处理更加有用-
它允许程序员避免不慎被绕过具有清除代码
return
continue
break
finally
即使在没有例外的情况下,将清除代码放在块中始终是一个好习惯。

注意:
如果在执行

try
catch
代码时JVM退出,则该
finally
块可能不会执行。同样,如果执行
try
catch
代码的线程被中断或杀死,则
finally
即使整个应用程序继续运行,该块也可能不会执行。

class Thread1 implements Runnable {    @Override    public void run() {        try { Thread.sleep(10000);        } catch (InterruptedException e) { e.printStackTrace();        } finally { System.out.println("finally executed");        }    }}

t1.start();t1.interrupt();

打印 -最终执行



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498333.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号