【发布时间】:2020-07-28 11:19:29
【问题描述】:
我有一个 Java 类,它在内部拥有一个 Closeable 资源。这意味着我的类也实现了 Closeable 接口,并在其自己的 close() 方法中关闭了内部资源。
我的类在被关闭之后的预期行为是什么,通常是 Java 中的任何关闭对象?我看到该对象处于失效状态,其内部已关闭,但客户端仍对其有引用。 IMO 访问它是一个编程错误,但错误时有发生,所以即使在这种情况下,行为也应该是合理的......
我应该吗?
- 对所有方法调用抛出异常,例如:IllegalState
- 闭上眼睛就像什么都没发生一样让异常从关闭的资源中通过?
什么是规范的Java方式?
【问题讨论】:
-
IllegalStateException 是合适的。除了,大多数可关闭资源允许多次调用
close()而不会产生异常。
标签: java autocloseable