1

Zipファイルのリストを渡すJavaコードがありますが、そのうちの1つは意図的に不適切な形式になっています。このZipファイルはリストの最後に配置されます。

私のコードは次のようになります。

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

リストの4番目または20番目のファイルである不正なzipファイルに到達する前に、「Hi Stinky Pete」を出力したり、ファイルを処理したりすることはなく、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

この不正な形式の ZIP ファイルがクラスパスにある可能性はありますか? または、それを開こうとするクラスに静的初期化子がありますか?

例外スタック トレースをよく見て、例外がスローされている場所を確認します。解釈できない場合は、質問にスタック トレースを投稿してください

于 2012-08-13T15:59:10.473 に答える