【发布时间】:2016-03-14 06:47:20
【问题描述】:
我正在使用 SuperCSV 来解析 CSV 文件。它完美无缺。 我传递的 CSV 文件中可能包含一些无效记录。到时候能不能记录下哪一行没有处理?
List<InputBean> csvContentsList = new ArrayList<InputBean>();
ICsvBeanReader beanReader = new CsvBeanReader(fileReader, CsvPreference.STANDARD_PREFERENCE);
InputBean bean = null;
do {
try {
bean = beanReader.read(InputBean.class, header, getProcessors());
if (bean != null)
csvContentsList.add(bean);
} catch (Exception e) {
logger.error("Error in parsing the record:"+e.getMessage());
}
} while (bean != null);
在此代码中,如果 CSV 文件包含无效记录,则会引发错误并被捕获到 catch 块中。怎么可能打印出无效记录?还是它的行号?
【问题讨论】:
-
如果您不喜欢捕获异常,您也可以使用抑制和收集每个异常的单元处理器来实现这一点。有关示例,请参见 here。