Ich habe 2 APIs von 2 verschiedenen Unternehmen, die es mir ermöglichen, mit ihren Servern zu kommunizieren, um Transaktionen zu verarbeiten. Ich bin mit der Erstellung einer allgemeinen Schnittstelle zu diesen APIs beauftragt. Ich kam mit etwas wie dieses:
IServiceProvider <- ServiceProvider <- CompanyAServiceProvider
IServiceProvider <- ServiceProvider <- CompanyBServiceProvider
Unter CompanyAServiceProvider
Ich verwende die von ihnen angebotene API für die Verbindung mit ihren Remote-Servern. Diese API von Unternehmen A löst Ausnahmen aus, die sich völlig von denen von Unternehmen B unterscheiden.
Ich kann mit der Ausnahme auf lokaler Ebene umgehen, aber ich glaube nicht, dass das der Situation wirklich gerecht wird.
public String purchase(String amount) {
try {
request = new Request( RequestIF.NEW_ORDER_TRANSACTION );
} catch ( InitializationException e ) {
//do something.
}
}
Oder ich kann diese Ausnahme an den Aufrufer weitergeben:
public String purchase(String amount) throws Exception {
request = new Request( RequestIF.NEW_ORDER_TRANSACTION );
}
Und lassen Sie den Anrufer nur die Exception
egal, um welche Ausnahme es sich handelt und egal, welche API sie auslöst.
Wie kann ich eine Schnittstelle zu 2 verschiedenen APIs schreiben und sie generisch halten, wenn ich mit 2 verschiedenen Sätzen von ausgelösten Ausnahmen zu tun habe. Gehe ich damit richtig um? Was wäre die beste Wahl?