首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异常后继续读取SuperCSV

异常后继续读取SuperCSV
EN

Stack Overflow用户
提问于 2015-10-01 22:45:04
回答 1查看 600关注 0票数 1

是否有方法在抛出单元处理器异常后继续读取CSV?我试图从一个文件中获取所有的好数据,用它做我需要的事情,并向用户报告出现了什么(如果有的话)坏行。例如,如果我有一个只有两个列的文件(name,active)。Name只是一个字符串,而active是一个布尔值。在我的CellProcessors列表中,两者都不是可选的。如果单个行的活动列为null,那么我希望以后继续处理这些行。

代码语言:javascript
复制
Name, Active
Bob, 0
John, 1
Mary, 
Harry, 1

在这种情况下,4号线玛丽将失败。我想继续读到第5行,所有的例子都显示了使用while循环进行读取,直到EoF和我都没有找到一种方法来获得出现的行数,这样我就可以使用带内部try/catch块的for循环。

EN

回答 1

Stack Overflow用户

发布于 2015-10-02 14:14:28

对自己做了些测试,我想出了一个解决办法。这肯定不太理想。我希望上个月在Git问题中提到的tryRead或hasNext版本能够实现,但这在此之前是可行的。

代码语言:javascript
复制
    boolean failed = false;
    do {
        try {
            failed = false;
            while( (myClassBean= beanReader.read(MyClass.class, processors)) != null ) {
                //Process the bean as normal
            }
        }
        catch (SuperCsvCellProcessorException sccpe) {
            //process the exception
            failed = true;
        }
   } while (failed);

bean读取器在csv中的位置维护似乎没有任何问题,因此在继续从下一行继续读取时,do的所有后续迭代都没有问题。当到达EoF时,两个循环都会按需要终止。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32897977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档