如何解决Closeable接口的close()方法签名是否有异常
我第一次阅读 Closeable 和 AutoCloseable 界面。 根据我的理解,除了 Closeable 接口的 close 方法的 IOException 之外,我们不能抛出任何异常,我们可以抛出任何可能的异常,例如 IllegalStateException 只抛出 AutoCloseable 接口。 但是我们能不能说Closeable方法的close()方法签名有异常。
解决方法
AutoCloseable interface 定义了 close
方法如下:
void close() throws Exception
而扩展 close
的 Closeable interface 中的 AutoCloseable
定义如下:
void close() throws IOException
因此,在后一种情况下,您只能抛出 IOException
或从它扩展的任何异常。
请注意,您始终可以抛出任何(未经检查的)运行时异常,例如 IllegalStateException,独立于方法签名中定义的异常。
,您是否想询问 Closable.close()
在方法签名中是否有异常?
是的,您可以在此处查看文档:{{3}}。它抛出 IOException
。
void close() throws Exception
根据文档,Closeable
扩展了 AutoCloseable
。我们将它专门用于 IO 流。因此它抛出 IOException
而不是 Exception
。
虽然这个接口方法被声明为抛出异常,但强烈建议实现者声明close方法的具体实现来抛出更具体的异常,或者如果close操作不能失败则根本不抛出任何异常。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。