我正在使用BeanIO
将平面文件转换为对象
列表。使用以下代码片段。
while ((MyCustomRecord obj = (MyCustomRecord) in.read()) != null) {
System.out.println(obj);
}
但是这样做的问题是,如果在解析某些记录时发生异常,它会立即停止处理记录。我想抑制这种异常并希望它继续处理下一条记录。
有办法做到这一点吗?
我可以尝试的一件事是将 in.read
放入 while
block 的主体中并将其包裹在 try/catch
周围,然后我将如何检测结束条件。似乎没有方法可以告诉记录结束。
谢谢 吉腾德拉
最佳答案
在 BeanIO 引用文档中找到答案。我之前错过了。
可以通过在 BeanReader 中注册自定义 ErrorHandler 来完成。
in.setErrorHandler(new BeanReaderErrorHandlerSupport() {
public void invalidRecord(InvalidRecordException ex) throws Exception {
System.out.println(ex.getLocalizedMessage());
}
});
http://beanio.org/docs/reference/index.html#StreamValidation
关于java - 如果 BeanIO 中的某些记录发生异常,则继续解析记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10238155/