所有try语句是否都存在隐式finally块?还是仅try-with-resources才有?
Java try语句与隐式finally块的疑问解答
问题1:除try-with-resources语句外,其他try语句是否会应用隐式finally块?
不会。普通的try、try-finally、try-catch-finally语句里不存在隐式finally块——如果需要执行收尾逻辑,必须显式编写finally代码块才能触发对应的逻辑。
问题2:隐式finally块是存在于所有try语句中,还是仅存在于try-with-resources语句中?
仅存在于try-with-resources语句中。当你使用try-with-resources声明实现了AutoCloseable接口的资源时,编译器会自动生成一个隐式的finally块,用于在代码执行完毕后自动调用资源的close()方法,无需开发者手动编写finally来关闭资源。而其他类型的try语句,完全依赖开发者显式添加finally块来处理收尾工作。
内容的提问来源于stack exchange,提问作者bridgemnc
相关产品推荐
相关产品推荐

