用spring代理异常处理代码味道?

时间:2014-04-03 13:16:37

标签: java spring exception-handling

我的服务包含许多使用HttpClient进行http调用的方法。方法如下:

BussinessDomain {

void getPerson(id:String) throws BusinessDomainException {
  ClientResponse res = httpClient.getPerson(id);
  Person p = decodeResponse(res) -> res contains the response body as string; eventually this throws ClientException(some exception specific to HttpClient)
  //... do something with p before returning
  return p;
}

void putPerson(p:Person) throws BusinessDomainException {
  ClientResponse res = httpClient.putPerson(p);
  // same thing, possible to throw ClientException
}

}

由于我们必须只在此层抛出BusinessDomainException,因此对于每个方法,我们必须拦截ClientException并将其转换为BusinessDomainException。

一个想法是在BussinessDomain周围使用Spring代理,但是关于这种方法的一个问题是我们将外部化BusinessDomain类之外的异常处理。

您是否经常使用Spring代理为您的域层执行异常处理?这种方法是一种很好的做法吗?

谢谢!

0 个答案:

没有答案