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
- Event Loop und Microtasks
- Futures erstellen und erwarten
- Fehlerbehandlung in async-Code
- Future.wait und parallele Arbeit