我的服务包含许多使用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代理为您的域层执行异常处理?这种方法是一种很好的做法吗?
谢谢!