我有如下的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...
///
}
}
高度赞赏任何输入。