在Spring Batch监听器中处理异常的正确方法是什么?

时间:2015-07-29 11:38:49

标签: java spring listener spring-batch

当使用Spring Batch中的public class MyClass implements ItemWriteListener<MyDTO> { // fields and constructor omitted @Override public void beforeWrite(List<MyDTO> items) { try { repository.loadAll(); // <-- Throws some checked exception } catch (Exception e) { // What to do here? } } // other methods omitted } (或类似)时,处理被检查异常的正确方法是什么?是侦听器的委托吗?

例如:

RuntimeException

我该如何处理这个例外?以下是一些想法:

  1. MyDTO
  2. 中的Rethrow
  3. 记录异常并让步骤在依赖于此侦听器操作的行中失败
  4. ItemWriteListener项目上设置一些指示符以指示失败
  5. 当然,我无法抛出已检查的异常,因为它未在static char calc_crc(char init, unsigned char *data, unsigned len) { for ( int i = 0 ; i < len; i++ ) init = init ^ data[i]; return init; } 接口上声明。

1 个答案:

答案 0 :(得分:5)

如果读取器/写入器依赖于此操作,则抛出运行时异常。这样,您可以确保SpringBatch正确处理事务和SpringBatch db-tables的更新。