0Pricing
Dart Academy · Lektion

Fehlerbehandlung in async-Code

try/catch mit await sicher verwenden

Fehlerbehandlung in async-Code ist eine kostenlose Dart Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Dart Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.

Futures können fehlschlagen

Asynchrone Arbeit kann fehlschlagen: Ein Server antwortet nicht rechtzeitig oder eine Datei fehlt. Ein Future kann mit einem Fehler statt mit einem Wert abgeschlossen werden.

try und catch mit await

Umschließen Sie ein await mit try/catch. Dann wirft ein fehlgeschlagenes Future den Fehler genau an dieser Stelle – wie ein gewöhnlicher synchroner Fehler.

try {
  final data = await fetch();
} catch (e) {
  print("failed: $e");
}

Bestimmte Typen abfangen

Verwenden Sie eine on-Klausel, um genau eine Fehlerart zu behandeln, während andere Fehler unverändert weitergereicht werden.

try {
  await load();
} on TimeoutException {
  print("too slow");
}

Den Fehler untersuchen

Fügen Sie catch (e, s) hinzu, um sowohl das Fehlerobjekt als auch seinen Stacktrace zu erfassen. Das erleichtert das Debuggen asynchroner Fehler erheblich.

catch (e, s) {
  print(e);
  print(s);
}

finally wird immer ausgeführt

Ein finally-Block wird ausgeführt, unabhängig davon, ob await erfolgreich war oder einen Fehler ausgelöst hat. Daher ist er der richtige Ort, um Dateien zu schließen oder Ladeanzeigen zu beenden.

try {
  await save();
} finally {
  closeFile();
}

Aus async heraus Fehler werfen

Wenn Sie innerhalb einer async-Funktion einen Fehler werfen, wird das zurückgegebene Future einfach mit diesem Fehler abgeschlossen und kann von einem Aufrufer abgefangen werden.

Future<int> risky() async {
  throw StateError("nope");
}

Fehler in then-Ketten

Ohne await können Sie catchError an ein Future anhängen, um einen Fehler in einer then-Kette zu behandeln.

fetch().then(use).catchError(handle);

Mit einem Standardwert fortfahren

In catchError oder catch können Sie einen Ersatzwert zurückgeben, damit Ihr Programm nach einem Fehler kontrolliert fortfahren kann.

Nicht behandelte Future-Fehler

Ein ignoriertes fehlgeschlagenes Future wird zu einem nicht abgefangenen Fehler, der die App möglicherweise zum Absturz bringt oder eine laute Fehlermeldung protokolliert. Fangen Sie Ihre Futures immer ab oder warten Sie auf sie.

Bei Bedarf erneut werfen

Verwenden Sie innerhalb eines catch rethrow, um den Fehler hier zu protokollieren und ihn dennoch von einem äußeren Handler behandeln zu lassen.

catch (e) {
  log(e);
  rethrow;
}

await innerhalb von finally

Sie können sogar innerhalb von finally await verwenden, um vor der Rückgabe der Funktion asynchron aufzuräumen, etwa einen Puffer zu leeren.

Schnelltest

Schnelltest zum Abfangen asynchroner Fehler.

Zusammenfassung: Asynchrone Fehler

Sie haben gelernt, await mit try/catch abzusichern, mit on bestimmte Typen anzusprechen, in finally aufzuräumen und Fehler zu behandeln oder erneut zu werfen. 🛡️

Häufig gestellte Fragen

Ist die Lektion „Fehlerbehandlung in async-Code“ kostenlos?

Ja — der vollständige Text von „Fehlerbehandlung in async-Code“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Dart Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Fehlerbehandlung in async-Code“?

try/catch mit await sicher verwenden Du übst Dart Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Dart Academy zu starten?

Keine Vorkenntnisse erforderlich. Dart Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Fehlerbehandlung in async-Code“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Dart Academy-Lektion Code schreiben und ausführen?

Ja. Jede Dart Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Event Loop und Microtasks
  2. Futures erstellen und erwarten
  3. Fehlerbehandlung in async-Code
  4. Future.wait und parallele Arbeit
← Zurück zu Dart Academy