当前位置:  开发笔记 > 前端 > 正文

如何处理从项目读取器引发的异常?

如何解决《如何处理从项目读取器引发的异常?》经验,为你挑选了1个好方法。

我想捕获从项目读取器引发的异常(例如读取器未打开,不正确的令牌异常等)并进行处理。当前,春季批处理将它们作为致命的异常抛出,并脱离了这一步。

请告诉我是否有任何方法可以做到?



1> 小智..:

我遇到了同样的问题,即我想赶上 org.springframework.batch.item.file.FlatFileParseException 抛出的错误FlatFileItemReader并执行一些自定义处理和日志记录。经过一些研究,几乎得出结论,我可能不得不编写一个自定义阅读器,而不是我当前使用的默认阅读器,直到我偶然发现了Spring Batch文档中某个部分的精髓:http://docs.spring。 io / spring-batch / reference / html / configureStep.html#interceptingStepExecution

您可以编写ItemReadListener接口的自定义实现并重写该onReadError(Exception ex)方法,然后在相应的步骤中注册此侦听器类。这样,当读取器从文件读取时遇到异常时,将调用此方法。异常引用也将传递给该方法,您可以使用该异常引用来进行日志记录等操作。同样,@OnReadError如果您不想ItemReadListener单独实现该接口,则编写带注释的方法也是一种选择。

另一方面,如果您的全部目的是跳过读取时可能发生的此类异常,则可以尝试在XML中的块配置中添加以下内容:


     

参考:http : //docs.spring.io/spring-batch/reference/html/configureStep.html#configuringSkip

问题解决了!:)

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有