Methoden Hat jemand eine gute Lösung?

Eagleophobic

Neues Mitglied
Hi!

Ich benutze eine API bei programmieren welche ein Verbindung zu dem dazugehörigen Server aufbaut. Wenn diese jetzt aus irgendwelchen Gründen abbricht entsteht ein Fehler sollte man versuchen etwas auszuführen was über diese Verbindung läuft.
Da ich die API sehr oft benutze kann ich sie nicht jedes mal in ein try/catch packen, da dies viel zu uneffizient wäre.
Jetzt meine Frage: Kann ich irgendeine Methode schreiben welche den void in einem try/catch ausführt?
Ich hab es schon wie folgt programmiert, so funktioniert es leider nicht. :/
Java:
public void safe(void v) {
try {
    v.invoke();
} catch (Exception ex) {
   //reconnect
}
}

Danke im voraus
 
Also ich sehe da evtl. mehrere Lösungen:
a) Du kannst dir einen eigenen Wrapper einmalig schreiben, den Du dann nutzen kannst. Entspricht auch etwas dem refactoring wenn du doppelten code entfernst.
b) Du kannst auch methoden übergeben. Hier bietet z.B. das Reflection API recht viel. Aber ob das eine anstrebenswerte Lösung ist?
c) Evtl. ist das auch eine schöne Anforderung an die Aspektorientierte Entwicklung. Aber in dem Bereich bin ich selbst noch nicht fit genug. Von meinen bisherigen Einblicken sieht es aber erstmals anwendbar aus.

Konrad
 
Über eine Verbindung zu einem Server kann man doch eigentlich nur 4 Dinge machen. Daten lesen, schreiben(ändern), löschen, hinzufügen. Das bedeutet du solltest irgendwo 4 Methoden haben die mit dem Server kommunizieren. Mehr nicht. In diesen 4 Methoden muss dann halt die Verbindung getestet werden das wars auch schon.

Gruß

Claus
 
Es ist eigentlich egal, wie viele Operationen es gibt. Die werden ja alle eine Connection benötigen und dort wäre evtl auch ein guter Ansatzpunkt. Würde dann auf etwas hinauslaufen a.la. connection pooling.

Dann wäre der Ansatz zwar ein anderer und an den try/catch würde sich nichts ändern (Aber die braucht man doch ehh, da ja auch ein Server Probleme haben kann). Aber die Connection würde halt vor der Nutzung geprüft und ggf. neu geöffnet.
 
Da ich die API sehr oft benutze kann ich sie nicht jedes mal in ein try/catch packen, da dies viel zu uneffizient wäre.
Warum ineffizient?

Ich glaube du solltest dir nochmal gedanken machen wer solche Exception abfangen soll. Jedes mal der User? Oder ist es sinnvoll noch eine Schicht einzuführen, die dir das reconnect durchführt?
 

Zurück
Oben