Android上的java.io方法是否会抛出InterruptedIOException?

时间:2013-01-15 13:51:26

标签: java android exception-handling interrupted-exception

我知道引入 InterruptedIOException 时没有多少选择;它必须是 IOException 的子类。

InterruptedIOException 的唯一存在无疑是让生活变得有点复杂,如果你想知道一个线程是否被中断。那是因为如果你想维护线程被中断的信息,你必须以不同于 IOException 的方式处理 InterruptedIOException

虽然 java.nio 发明了 InterruptedIOException ,但据报道至少在Solaris下,有 java.io 方法抛出 InterruptedIOException 。此外,对于新的Android版本,存在库从 java.io 迁移到 java.nio 或其他方法以某种方式映射的风险。

我倾向于认为应该考虑 InterruptedIOException 以确保安全。你怎么看?见解,经验,策略?

1 个答案:

答案 0 :(得分:1)

就个人而言,如果可以避免,我不会使用中断。为了阻止IO操作,我将设置一个volatile标志并关闭流。如果已设置关闭标志,则忽略抛出的任何IOException。这使您可以更好地控制组件的关闭方式。一旦我将组件设置为closed,我当然不会解开,我可以随意检查它。