我正在尝试在某些客户端/服务器代码中跟踪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/