0

まず、以下のコードはしばらくの間問題なく動作しました。同僚から Excel ファイルを受け取り、それを読んでこのプログラムでアップロードします。最近、同僚が交代し、別の人からファイルを受け取りました。彼がエクセルファイルで正確に何をしているのか、私も彼に確認します.

とにかく、新しい同僚から受け取った最初の 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;
    }

デバッグを試みましたが、同じ動作が発生し、例外がスローされず、続行する方法がわかりません。

フィードバックをお寄せいただきありがとうございます。

4

1 に答える 1

0

Throwable をキャッチして、Exception の代わりに参照します。それはうまくいくはずです。

} catch (Throwable e) {
    System.out.println(e.getMessage());

    _log.error(e.getMessage());
    if (priceList != null) {
        priceList.setReadCorrectly(false);
    }

}
于 2012-12-06T07:14:15.177 に答える