1

我有 Java 代码,它传入一个 Zip 文件列表,其中一个是故意格式错误的。此 Zip 文件位于列表的末尾。

我的代码看起来有点像:

System.out.println("Hi Stinky Pete ");
try
{
    for (File files : file)
    {
       zip_str = new ZipInputStream(new BufferedInputStream(new FileInputStream(file)));
       yada;
    }
}
catch(Exception)
{
}

它从不打印“Hi Stinky Pete”或处理任何文件,然后才到达坏的 zip 文件,这是列表中的第 4 或第 20 个文件,它只是抛出 ZipException。另外,我无法捕捉到 ZipException!它总是冒泡并终止我的程序。任何帮助都会很棒。

4

2 回答 2

0

我很抱歉,但我继承了代码。我继承的代码通过文件列表执行循环,将它们投射到ZipFile单独的运行线程中。这就是为什么我无法抓住它或获取 StackTrace。基本上是这样,

for( File files : file)
{
    ZipFile zip = new ZipFile(file);
}

他们这样做是为了检查他们的 Zip 文件,但没有抓到。对不起这个帖子!

于 2012-08-13T20:27:09.677 回答
0

这个格式错误的 ZIPfile 在你的类路径上是否有任何机会?或者你的类中有一个静态初始化器试图打开它?

仔细查看异常堆栈跟踪以了解它被抛出的位置。如果您无法解释它,请在您的问题中发布堆栈跟踪

于 2012-08-13T15:59:10.473 回答