为什么java.util.zip.ZipError
会被抛出,捕捉它可以吗?
javadoc说这意味着发生了一个不可恢复的错误--但是这样的错误会是什么呢?我听说它可能发生在错误的压缩文件中。
编辑:
查看java.util.zip源代码可以看出,当试图访问文件中不存在的元素,但java.util.zip.ZipFile
类的内部计数表明该元素应该存在时,就会抛出异常。如果另一个线程在ensureOpen
方法检查后试图关闭文件,或者java.util.zip.ZipFile
调用的本机方法出现问题,就会出现这种情况。如果在Java应用程序打开文件时更改了该文件,则可能会发生这种情况。不过,我并不真正理解所涉及的代码库的完整性(它很大!)。
发布于 2013-11-27 05:35:09
ZipError
表示一个低级的JVM错误,尽管您可能会像捕获任何其他异常一样捕获它,但整个JVM有可能在那个时刻处于一种不应该继续运行的状态。请注意,对于更常见的错误,如损坏的文件、I/O错误等,有一个单独的ZipException
。
https://stackoverflow.com/questions/20228198
复制相似问题