java - 在哪里可以找到所有具有抛出 EOFException 方法的 Java (SE 7) 标准库类的列表?

标签 java exception java-7 ioexception eofexception

我试图在某些客户端/服务器代码中追踪 EOFException 的来源,但使用的许多类仅具有抛出 IOException 的方法。 code>,而不是专门的 EOFException。通常我只会查看堆栈跟踪,但我没有它并且无法重现它。因此,拥有一个包含专门抛出 EOFException 的方法的每个类的列表会很有帮助,但我不知道如何找出这些信息。

是否有关于每个(标准)Java 类(在 SE 7 中,以我为例)的信息源,这些类具有抛出 EOFException 的方法?我尝试阅读 EOFException 上的 Javadocs没有效果。

(至少我发现 DataInput 确实提到了EOFException。但是还有更多吗?)

后记:因为似乎唯一的方法就是检查源代码,here是我在提取的源代码(1.7.0_45)中搜索“EOFException”的结果。

最佳答案

编辑: 在底部为 JDK 中的所有源代码添加了 7.51 的结果。

在 Java 6.17 中,以下是显式抛出 java.io.EOFException 的所有类。具体来说,它是在每个源代码文件中发现 new\s+EOFException 的次数。

java.io.DataInputStream.java: 8
java.io.ObjectInputStream.java: 6
java.io.RandomAccessFile.java: 8
java.util.zip.GZIPInputStream.java: 2
java.util.zip.InflaterInputStream.java: 1
java.util.zip.ZipFile.java: 1
java.util.zip.ZipInputStream.java: 1

这里还有一点信息:所有包含 catch\s*\(\s*EOFException:

的源代码文件
java.io.ObjectInputStream.java: 1
java.util.zip.ZipInputStream.java: 1

请注意,没有扩展 EOFException 的标准 java.* 异常类(不存在

extends\s+([a-z]+\.)*EOFException

java.* 源代码中的任何位置)。

这是一个有限但有值(value)的起点。正如其他人所提到的,可能会遗漏某些情况——当您拥有的只是可以使用的源代码时,找到它们将非常耗时。希望这些信息能让您走上正确的道路。


以下是 Java 7.51 的结果,适用于 JDK 提供的所有源代码:

扩展\s+([a-z]+\.)*EOFException

catch\s*\(\s*EOFException

com.sun.imageio.plugins.gif.GIFImageReader: 1
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl: 1
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl: 4
com.sun.org.apache.xerces.internal.impl.XMLVersionDetector: 1
com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDLoader: 2
java.io.ObjectInputStream: 1
java.util.zip.ZipInputStream: 1

新\s+EOFException

com.sun.corba.se.impl.io.IIOPInputStream: 1
com.sun.imageio.plugins.png.PNGImageReader: 1
com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl: 1
com.sun.org.apache.xerces.internal.impl.XMLEntityManager: 1
com.sun.org.apache.xerces.internal.impl.XMLEntityScanner: 1
java.io.DataInputStream: 8
java.io.ObjectInputStream: 6
java.io.RandomAccessFile: 8
java.util.zip.GZIPInputStream: 2
java.util.zip.InflaterInputStream: 1
java.util.zip.ZipFile: 1
java.util.zip.ZipInputStream: 1
javax.imageio.stream.ImageInputStreamImpl: 8

关于java - 在哪里可以找到所有具有抛出 EOFException 方法的 Java (SE 7) 标准库类的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21458345/

相关文章:

java - ExceptionStrategy 构造方法上的异常 java.lang.NoSuchMethodError

java - jar 中未找到主类异常

java - 为什么简单的选择查询返回 List<Mymodel> 但在 jpa 中加入查询返回 List<Object>

ejb - 不支持的类版本错误

java - 如何静音 Apache OpenNLP 日志

java - 如何读取注释中的messages.properties

java - 缓冲区下溢异常java

java - 我想从抛出Java程序的当前异常中提取一个字符串

源代码 1.7(或 7)的 Java Maven 构建失败

java - 如何为 Java 7 中的现有国家/地区代码向 java.util.Currency 添加新货币?