首先,下面的代碼已經運行一段時間沒有問題了。 我從一位同事那裏收到excel文件,我通過這個程序閱讀和上傳。 最近,同事被替換,我從另一個人收到文件。 我會和他一起檢查他的excel文件。Apache POI退出而沒有拋出異常
無論如何,我從新同事收到的第一個excel文件讓我感到沮喪。 以下代碼在WorkbookFactory.create(fis)
調用中退出。沒有異常拋出 和程序直接進到finally
條款等
try {
fis = new FileInputStream(f);
Workbook wb = WorkbookFactory.create(fis);
Sheet ws = wb.getSheetAt(0);
if (ws == null) {
throw new ParseException("No sheet found on index 0", 1);
}
Iterator rowIt = ws.rowIterator();
while (rowIt.hasNext()) {
Row row = (Row) rowIt.next();
if (row.getRowNum() != 0 && isArticleRow(row)) {
Article article = parseArticleData(row);
if (article != null) {
priceList.getArticles().add(article);
}
}
}
String vendorNumber = getVendorNumber(priceList);
priceList.setVendorNumber(vendorNumber);
priceList.setReadCorrectly(true);
System.out.println("DONE");
} catch (Exception e) {
System.out.println(e.getMessage());
_log.error(e.getMessage());
if (priceList != null) {
priceList.setReadCorrectly(false);
}
} finally {
if (fis != null) {
fis.close();
}
return priceList;
}
我試圖調試,但我遇到相同的行爲,並沒有被拋出 例外,我不知道如何繼續。
在此先感謝您的意見。
什麼使用調試器顯示你正在發生? ;) –
不是一個乾淨的解決方案,但嘗試捕捉「Throwable」而不是異常,然後打印出來看看問題是什麼......最有可能的運行時錯誤正在拋出...... – Pushkar
是的,謝謝,這實際上是所有我需要。它似乎有些poi xml罐子丟失。由於以前的同事使用不同的excel格式,poi從不需要xml庫。 – Treurwilg