Die Wiederholung einer Funktion in C#, bis es nicht mehr löst eine Ausnahme aus

Ich habe eine Klasse, die nennt eine SOAP-Schnittstelle und ruft ein array von Daten zurück. Allerdings, wenn diese Anfrage mal aus, wirft es eine Ausnahme. Das ist gut so. Allerdings möchte ich mein Programm, um zu versuchen, um diesen Anruf wieder. Wenn es mal aus, ich möchte es zu halten, machen diesen Aufruf, bis er erfolgreich ist. Wie kann ich dies erreichen?

Beispiel:

try
{
   salesOrdersArray = MagServ.salesOrderList(sessID, filter);
}
catch
{
   ?? What Goes Here to FORCE the above line of code to rerun until it succeeds.
}
  • Erhöhen Sie den timeout, so dass es nicht die Ausnahmen?
  • Sie können einfach rufen Sie die Methode erneut aus dem catch-block, ABER was passiert, wenn der service down ist für einen längeren Zeitraum? Wollen Sie die Methode rekursiv ausgeführt wird, für 24 Stunden? Ich würde empfehlen die Begrenzung auf eine festgelegte Anzahl von Wiederholungen.
  • Aus allen diesen Antworten, nicht eine einzige person sagt, dass Sie fangen eine spezifische Ausnahme. Was, wenn der try-block enthält die Objekte, die sich in einem ungültigen Zustand zu erhalten, der salesOrderList? Erneuter Versuch wird nicht gelingen.
InformationsquelleAutor psyklopz | 2011-10-27
Schreibe einen Kommentar