嵌套for循环-异常处理

时间:2019-04-04 02:41:45

标签: java spring exception

我有如下的springBoot应用程序。这里的postConstruct方法嵌套了for循环。内部的for循环是外部主控的子代。一个主人可以有一个以上的孩子。如果一个孩子失败了,则必须回滚孩子并移至下一个主记录是逻辑。 方法abc具有业务逻辑,可以抛出数据库异常或任何必须处理的异常。这些方法在serviceImpl层中可用,因此我抛出异常并捕获到主类中,然后继续进行下一行。 在循环所有主记录之前,不应停止for循环的执行。当一个孩子失败时,更新数据库并继续执行下一个孩子。...

在此流程中处理异常的有效方法是什么。

@SpringBootApplication
@ImportResource("classpath:/config/applicationContext.xml")
public class TaxMain{
///..///
@PostConstruct
public void checkForTransactions() {
    for(Map.Entry<Long, List<TaxPaymentRecord>> entry : hashMap.entrySet())
    {
        List<TaxPaymentRecord> paymentMethods = entry.getValue();
        try{
        for(TaxPaymentRecord paymentMethod : paymentMethods){
            //paymentMethods gets updated here
            ....
        }
        }catch(){}
        try{
        abc(paymentMethods);
        def(paymentMethods);
        ghi(paymentMethods);
        }catch(){
        }
        }catch(TaxCustomException tx){
            // update flag to 'F' for failed ones to DB
        }
    }
}

服务层代码

@service
public class TaxServiceImpl{
    @Transactional
    public Boolean abc(List<TaxPaymentRecord> paymentMethods) throws TaxCustomException {


    ///
    couple of business logic, might throw null pointer exception, DB exception...
    ///

    }

    @Transactional
    public Boolean def(List<TaxPaymentRecord> paymentMethods) throws TaxCustomException {


    ///
    couple of business logic, might throw null pointer exception, DB exception...
    ///

    }
}

高度赞赏任何输入。

0 个答案:

没有答案