2012-08-13 84 views
1

我有一個Java代碼,它傳入Zip文件列表中,其中一個故意格式錯誤。此Zip文件位於列表的末尾。Java ZipInputStream在執行代碼之前拋出異常

我的代碼看起來有點像:

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

它永遠不會打印「你好臭皮特」或它得到的壞zip文件,這是在列表中的第4個或20文件之前處理任何文件,它只拋出ZipException。此外,我無法趕上ZipException!它總是起泡並終止我的程序。 任何幫助將是偉大的。

+0

你可以發佈輸出嗎? – 2012-08-13 15:44:47

+0

1.哪條線是拋出的異常? 2.您可能會看到sysout和異常日誌(syserr)之間的區別,因爲它們是由單獨的線程處理的。你可以嘗試調試程序來確認實際的流程嗎? – Nivas 2012-08-13 15:47:25

回答

0

這是你的類路徑上的這個畸形的ZIP文件嗎?或者你的類中有靜態初始化器試圖打開它嗎?

仔細查看堆棧跟蹤的異常,看看它在哪裏拋出。如果你不能解釋它,那麼在你的問題中發佈堆棧跟蹤。

0

我很抱歉,但我遺傳了代碼。我繼承的代碼通過文件列表執行循環,在單獨運行的線程中將它們轉換爲ZipFile。這就是爲什麼我無法捕捉它或獲得StackTrace。基本上它是,

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

他們這樣做來檢查他們的Zip文件,但沒有捕捉。對不起,這篇文章!