У меня есть 2 API от 2 разных компаний, которые позволяют мне общаться с их серверами для обработки транзакций. Мне поручено создать общий интерфейс для этих API. Я придумал что-то вроде этого:
IServiceProvider <- ServiceProvider <- CompanyAServiceProvider
IServiceProvider <- ServiceProvider <- CompanyBServiceProvider
В CompanyAServiceProvider
Я использую API, который они предлагают для взаимодействия с их удаленными серверами. Этот API от компании A генерирует исключения, которые полностью отличаются от компании B.
Я могу обработать исключение локально, но я не думаю, что это соответствует ситуации.
public String purchase(String amount) {
try {
request = new Request( RequestIF.NEW_ORDER_TRANSACTION );
} catch ( InitializationException e ) {
//do something.
}
}
Или я могу выдать это исключение вызывающей стороне:
public String purchase(String amount) throws Exception {
request = new Request( RequestIF.NEW_ORDER_TRANSACTION );
}
И пусть вызывающая сторона обрабатывает только Exception
независимо от того, что это исключение и какой API его выдает.
Как я могу написать интерфейс для двух разных API и сохранить его универсальным, когда я имею дело с двумя разными наборами исключений. Я правильно с этим справляюсь? Какой будет лучший выбор?