Heim > Backend-Entwicklung > C++ > Wie können C# Lambda -Ausdrücke die Wiederholungslogik für die Behandlung potenzieller Fehler sauber implementieren?

Wie können C# Lambda -Ausdrücke die Wiederholungslogik für die Behandlung potenzieller Fehler sauber implementieren?

Barbara Streisand
Freigeben: 2025-01-29 08:46:13
Original
178 Leute haben es durchsucht

How Can C# Lambda Expressions Cleanly Implement Retry Logic for Handling Potential Failures?

Streamline -Wiederholungslogik mit C# Lambda -Ausdrücken

robuste Anwendungen erfordern häufig Wiederholungsmechanismen, um potenzielle Ausfälle anmutig zu bewältigen. Während traditionelle Wiederholungsschleifen komplex und anfällig für Fehler sein können, bieten C# Lambda -Ausdrücke eine elegantere und wiederverwendbarere Lösung.

Dieser Artikel zeigt eine Retry Klasse, die die Wiederholung der Logik vereinfacht. Die Kernfunktionalität wird in der Do -Methode eingekapselt, die einen Lambda -Ausdruck akzeptiert, der die zu erniedrigte Operation darstellt.

Hier ist eine verallgemeinerte Implementierung:

<code class="language-csharp">public static class Retry
{
    public static void Do(Action action, TimeSpan retryInterval, int maxAttemptCount = 3)
    {
        var exceptions = new List<Exception>();

        for (int attempted = 0; attempted < maxAttemptCount; attempted++)
        {
            try
            {
                action();
                break; // Success! Exit the loop.
            }
            catch (Exception ex)
            {
                exceptions.Add(ex);
                if (attempted < maxAttemptCount - 1)
                {
                    Thread.Sleep(retryInterval);
                }
            }
        }
        if (exceptions.Any())
        {
            throw new AggregateException(exceptions);
        }
    }
}</code>
Nach dem Login kopieren

Diese Do -Methode ermöglicht flexible Wiederholungskonfigurationen: Angabe des Wiederholungsintervalls und der maximalen Anzahl von Versuchen. Es sammelt Ausnahmen, die aufgetaucht sind, und wirft ein AggregateException aus, wenn alle Versuche fehlschlagen.

Die Retry Klasse ist einfach und intuitiv:

<code class="language-csharp">Retry.Do(() => SomeFunctionThatMightFail(), TimeSpan.FromSeconds(1));</code>
Nach dem Login kopieren
Ein

Das obige ist der detaillierte Inhalt vonWie können C# Lambda -Ausdrücke die Wiederholungslogik für die Behandlung potenzieller Fehler sauber implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage