首页 > 解决方案 > 概括规则:哪些操作总是会导致 IOException?

问题描述

可以概括一下对文件的任何操作都可能导致 IOException (IOE) 吗?包括只读取一个文件,只检查它的属性(名称、时间戳)?

我试图在抛出 IOException 的 API 方法中找到逻辑,因此我尝试理解并制定一般规则而不是记忆。

FileInputStream / FileOutputStream 构造函数不会抛出 IOException (他们会抛出它的子 FileNotFoundException ) - 但这还不能处理文件,它只是在为它做准备 - 另一种方法将访问给定 FileInputStream / FileOutputStream 作为参数的文件。

  1. 到目前为止,我的概括无处不在。在任何情况下,这种概括是错误的(原则上是例外或错误)?
  2. 是否有任何其他关于已检查异常的概括(可能是关于套接字的 IOE 或除 IOE 之外的任何其他已检查异常)?

可能有一些操作系统内部可以帮助概括它理解操作系统级别上发生的一些一般想法?

标签: javaioexception

解决方案


AFAIK,没有决定是否抛出IOException或抛出一个子类的一般规则IOException。(无论如何,我不会通过记住那种信息来填满我的脑袋。我只会根据需要阅读 javadocs。)

如果您想自己分析这个,可以从 OpenJDK.java.net 站点下载 Java 源代码。应该可以为所有出现的相应异常“grep”源代码树。

可能有一些操作系统内部可以帮助概括它理解操作系统级别上发生的一些一般想法?

操作系统不会抛出 Java 异常。Java 类库和 Java 本机库可以。


推荐阅读