我正在尝试在某些客户端/服务器代码中跟踪EOFException的来源,但是许多使用的类仅具有表示它们抛出IOException而不是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


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

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


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

这是一个有限但有价值的起点。正如其他人所提到的,在某些情况下这可能会遗漏-当您拥有的只是可以工作的源代码时,找到它们将很耗时。希望这些信息将使您走上正确的道路。



以下是JDK随附的所有源代码的Java 7.51的结果:

extends\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


new\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 - 在哪里可以找到所有Java(SE 7)标准库类的列表,这些类具有的方法将引发EOFException?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21458345/

10-12 01:43