Java 在Spring批处理侦听器中处理异常的正确方法是什么?
当使用Spring批处理中的Java 在Spring批处理侦听器中处理异常的正确方法是什么?,java,spring,listener,spring-batch,Java,Spring,Listener,Spring Batch,当使用Spring批处理中的ItemWriteListener(或类似)时,处理侦听器委托引发的已检查异常的正确方法是什么 例如: public class MyClass implements ItemWriteListener<MyDTO> { // fields and constructor omitted @Override public void beforeWrite(List<MyDTO> items) { try
ItemWriteListener
(或类似)时,处理侦听器委托引发的已检查异常的正确方法是什么
例如:
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
}
公共类MyClass实现ItemWriteListener{
//省略字段和构造函数
@凌驾
写前公共作废(列表项){
试一试{
repository.loadAll();//如果读写器依赖于此操作,则抛出运行时异常。这样,您可以确保SpringBatch正确处理事务和SpringBatch db表的更新。一个重要方面:是否希望事务(和处理的块)回滚?beforeWrite()在整个区块的事务内部运行,因此“rethrow”将导致回滚(请参阅javadoc)@MichaelPralow,这正是我所需要的,因为这里的异常指示进程的无效状态。