У меня есть интерфейс уровня сервиса, который выглядит следующим образом:Hystrix и пользовательских исключений
public interface MyService {
void save(DomainClass domainObject) throws MyServiceException;
}
Я использую Hystrix защитить метод реализации:
public class MyServiceImpl implements MyService {
@HystrixCommand
public void save(DomainClass domainObject) throws MyServiceException {
remoteServiceClient.persist(domainObject);
}
}
Когда remoteServiceClient
выходит из строя или тайм-аут, Hystrix бросает HystrixRuntimeException
. Но я не хочу, чтобы клиенты службы видели какие-либо связанные с Hystrix исключения (они не должны забывать о деталях реализации услуги, не так ли?). Я хочу выбросить исключенное исключение MyServiceException
. Можно ли это сделать? Должен ли я структурировать свою реализацию по-другому?