Я использую SuperCSV для разбора CSV-файла. Он работает безупречно. Файл CSV, который я передаю, может содержать некоторые недопустимые записи. В это время можно ли регистрировать, какая строка не обрабатывается?Добавление строки ошибки в журнал при сбое SuperCSV
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 содержит недопустимую запись, он выдает ошибку и ловится в блоке поймать. Как можно напечатать эту недопустимую запись? или номер строки?
Если вам не нравится ловить исключения, вы также можете осуществить это с помощью процессора клеток, который подавляет и собирает каждый исключение. См. [Здесь] (http://stackoverflow.com/questions/13646982/validate-every-field-in-a-single-pass-with-supercsv/13658467#13658467) для примера. –