1

我正在使用BeanIO将平面文件转换为Object. 使用以下代码片段。

while ((MyCustomRecord obj = (MyCustomRecord) in.read()) != null) {
         System.out.println(obj);
}

但是这样做的问题是,如果在解析某些记录时发生异常,它会立即停止处理记录。我想抑制这种异常并希望它继续处理下一条记录。

有没有办法做到这一点?

我可以尝试的一件事是放入块in.readwhile并将其包裹起来,try/catch但是我将如何检测结束条件。似乎没有方法可以告诉记录结束。

谢谢吉滕德拉

4

1 回答 1

3

在 BeanIO 参考文档中找到答案。我之前错过了。

可以通过在BeanReader.

in.setErrorHandler(new BeanReaderErrorHandlerSupport() {
            public void invalidRecord(InvalidRecordException ex) throws Exception {
                System.out.println(ex.getLocalizedMessage());
            } 
});

http://beanio.org/docs/reference/index.html#StreamValidation

于 2012-04-19T23:20:37.877 回答