Heim > Backend-Entwicklung > C++ > Wie gehe ich mit Ausnahmen in C#-Aufgaben um (Async/Await und ContinueWith)?

Wie gehe ich mit Ausnahmen in C#-Aufgaben um (Async/Await und ContinueWith)?

DDD
Freigeben: 2025-01-03 15:48:39
Original
555 Leute haben es durchsucht

How Do I Handle Exceptions in C# Tasks (Async/Await and ContinueWith)?

Ausnahmebehandlung in C#-Aufgaben

Bei der Arbeit mit Task ist die Ausnahmebehandlung unerlässlich, um robuste und reaktionsfähige Anwendungen sicherzustellen. In diesem Artikel werden zwei Ansätze zum Erfassen von Ausnahmen untersucht, abhängig von der verwendeten C#-Version.

C# 5.0 und höher: Async und Await

In C# 5.0 und höher werden die Schlüsselwörter „async“ und „await“ vereinfacht die aufgabenbasierte Programmierung erheblich. Anstatt sich auf ContinueWith zu verlassen, können Sie mit asynchronen Methoden Try/Catch-Blöcke direkt verwenden, um Ausnahmen zu behandeln:

try
{
    // Start the task.
    var task = Task.Factory.StartNew<StateObject>(() => { /* action */ });

    // Await the task.
    await task;
}
catch (Exception e)
{
    // Perform cleanup here.
}
Nach dem Login kopieren

C# 4.0 und niedriger: ContinueWith mit TaskContinuationOptions

Für ältere Versionen von C# Die ContinueWith-Überladung mit der TaskContinuationOptions-Enumeration kann sein verwendet:

// Get the task.
var task = Task.Factory.StartNew<StateObject>(() => { /* action */ });

// For error handling.
task.ContinueWith(t => { /* error handling */ }, context,
    TaskContinuationOptions.OnlyOnFaulted);
Nach dem Login kopieren

OnlyOnFaulted stellt sicher, dass die Fortsetzung nur ausgeführt wird, wenn die Vorgängeraufgabe eine Ausnahme auslöst. Mehrere Fortsetzungen können verkettet werden, um unterschiedliche Fälle zu behandeln:

// For error handling.
task.ContinueWith(t => { /* error handling */ }, context, 
    TaskContinuationOptions.OnlyOnFaulted);

// If it succeeded.
task.ContinueWith(t => { /* on success */ }, context,
    TaskContinuationOptions.OnlyOnRanToCompletion);
Nach dem Login kopieren

Ganz gleich, ob Sie den Async/Await-Ansatz oder die ContinueWith mit TaskContinuationOptions-Technik wählen, diese Methoden ermöglichen es Ihnen, Ausnahmen in C#-Aufgaben effektiv abzufangen und sicherzustellen, dass Ihre Anwendungen damit umgehen unerwartete Fehler elegant.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit Ausnahmen in C#-Aufgaben um (Async/Await und ContinueWith)?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage