一尘不染

如何从close()正确处理IOException

java

Java的I /
O类java.io.Readerjava.io.Writerjava.io.InputStreamjava.io.OutpuStream和他们的不同子类中都有一个close()可抛出的方法IOException

对于处理此类异常的正确方法是否存在共识?

我经常看到建议,只是默默地忽略它们,但这是错误的,至少在打开用于写的资源的情况下,关闭文件时出现问题可能意味着无法写入/发送未刷新的数据。

另一方面,在阅读资源时,我还不清楚为什么close()会抛出异常以及如何处理。

那么有什么标准建议吗?


阅读 233

收藏
2020-12-03

共1个答案

一尘不染

记录下来。

您实际上不能 做任何事情 (例如,编写一些可以从错误中恢复的代码),但是通常值得让别人知道它。

编辑:
经过进一步调查并阅读了其他评论,我想说的是,如果您确实想处理它,那么您将必须知道实现的细节。相反,您可能需要了解实现的详细信息,以决定是否需要处理它。

但实际上,我无法想到任何流的示例,在这些示例中,在不引发异常的情况下,读取或写入将正常工作,但是关闭会如此。

2020-12-03