gpt4 book ai didi

java - AutoCloseable.close()方法是否违反了Java的向后兼容性规则

转载 作者:行者123 更新时间:2023-12-01 22:47:03 27 4
gpt4 key购买 nike

从 Java 7 开始,Closeable接口(interface)已 retrofit 扩展AutoCloseable接口(interface),以便所有类实现 Closeable接口(interface)可与 try-with-resources 配合使用陈述。到目前为止,Closeable 接口(interface)可以随意抛出任何异常,包括 InterrrruptedException。 然而,对于 Java 7 try-with-resources 中使用的 Closeable 接口(interface)的任何实例当退出 try block 及其 InterruptedException 后自动调用 close 方法时,语句可能会抛出 InterruptedException可能会被隐式调用 Throwable.addSuppressed(InterruptedException); 抑制

考虑到有人可能会在不知不觉中抑制异常并且程序没有按应有的行为,这是否违反了 Java 的向后兼容性规则

最佳答案

不,这不会破坏向后兼容性。 “try-with-resources”特性是 Java 7 中的新特性;旧代码无法调用它。任何依赖于捕获 close 引发的异常的旧代码仍将使用普通的“try-catch” block ,并且异常不会被抑制,因为它不会使用“try-与资源”。由于抑制,这样的 block 将无法转换为“try-with-resources”,但它仍然会按原样工作。

关于java - AutoCloseable.close()方法是否违反了Java的向后兼容性规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25190347/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com