假设从 Spring 服务中,我想通过客户端调用外部系统,如果该调用失败(引发未经检查的异常),我想记录它,更新 DB 中的订单状态并重新引发要回滚的事务的异常。 ..
我知道下面的示例代码被认为是一种反模式,但我想不出更好的方法来实现这一点……请问有什么意见吗?
public class Service {
@Autowired(required = true)
private Client client;
@Autowired(required = true)
private DAO d;
@Transactional
@Override
public void register(String id) {
try{
client.invoke(id);//throws Client unchecked exception
}
catch (ClientException e){
LOG.error (e);
d.updateStatus(id,"failed");
throw e;
}
}
}