java - 概括规则:哪些操作总是会导致 IOException?
问题描述
我可以概括一下对文件的任何操作都可能导致 IOException (IOE) 吗?包括只读取一个文件,只检查它的属性(名称、时间戳)?
我试图在抛出 IOException 的 API 方法中找到逻辑,因此我尝试理解并制定一般规则而不是记忆。
FileInputStream / FileOutputStream 构造函数不会抛出 IOException (他们会抛出它的子 FileNotFoundException ) - 但这还不能处理文件,它只是在为它做准备 - 另一种方法将访问给定 FileInputStream / FileOutputStream 作为参数的文件。
- 到目前为止,我的概括无处不在。在任何情况下,这种概括是错误的(原则上是例外或错误)?
- 是否有任何其他关于已检查异常的概括(可能是关于套接字的 IOE 或除 IOE 之外的任何其他已检查异常)?
可能有一些操作系统内部可以帮助概括它理解操作系统级别上发生的一些一般想法?
解决方案
AFAIK,没有决定是否抛出IOException
或抛出一个子类的一般规则IOException
。(无论如何,我不会通过记住那种信息来填满我的脑袋。我只会根据需要阅读 javadocs。)
如果您想自己分析这个,可以从 OpenJDK.java.net 站点下载 Java 源代码。应该可以为所有出现的相应异常“grep”源代码树。
可能有一些操作系统内部可以帮助概括它理解操作系统级别上发生的一些一般想法?
操作系统不会抛出 Java 异常。Java 类库和 Java 本机库可以。
推荐阅读
- ios - View Controller with Embedded Navigation Controller linked to tableview
- java - Upgrading to Spring Boot 1.5 - How to refactor RepositoryRestMvcConfiguration?
- python - 访问满足networkx包中某些条件的图中的边
- android - 如何在 Android 上使用 Intent 打开 Firefox about:reader?url=example.com
- python - 将数据框列添加在一起,由考虑 NaN 的列分隔
- c++ - 移动 std::atomic_flag 的惯用方式(或:如何移动承诺)
- python - 由 TF Server 提供的导出的 Keras 分类模型给出:期望 arg[0] 为浮点数,但提供了字符串
- servicestack - Servicestack References 与 ForeignKey 中的数据注释
- javascript - 获取从今天开始的星期几
- javascript - 仅代码区域的 JavaScript 掩码