finally und garantierte Bereinigung
Code unabhängig davon ausführen, ob ein Fehler auftritt
finally und garantierte Bereinigung 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.
Bereinigung muss immer ausgeführt werden
Geöffnete Dateien und Verbindungen müssen auch dann geschlossen werden, wenn der Code fehlschlägt. Dart bietet dafür finally, dessen Bereinigung immer ausgeführt wird. 🧹
Der finally-Block
Ein finally-Block wird nach try und catch unabhängig vom Ergebnis ausgeführt. Ob Erfolg oder Fehler – sein Code läuft immer.
try {
work();
} finally {
cleanup();
}Wird nach erfolgreichem Abschluss ausgeführt
Wenn der try-Block fehlerfrei beendet wird, führt Dart direkt danach trotzdem finally aus, bevor es fortfährt.
Wird nach einem Catch ausgeführt
Wenn eine Exception abgefangen wird, wird zuerst der catch-Block ausgeführt und danach auch finally. Beide werden in dieser Reihenfolge ausgeführt.
try {
fail();
} catch (e) {
log(e);
} finally {
close();
}Wird auch ohne Catch ausgeführt
Verwenden Sie try nur mit finally, ohne catch. Die Exception wird weiterhin weitergereicht, aber zuvor wird beim Verlassen noch die Bereinigung ausgeführt.
try {
risky();
} finally {
release();
}Warum nicht einfach duplizieren?
Ohne finally müssten Sie die Bereinigung sowohl im Erfolgs- als auch im Fehlerpfad kopieren. Ein finally-Block hält sie an einer einzigen Stelle.
Bereinigung vor dem erneuten Auslösen
Auch wenn eine Exception unbehandelt weiter nach oben propagiert wird, läuft finally zuerst. So werden Ressourcen niemals ungewollt offen gelassen.
Eine Datei sicher schließen
Ein klassischer Anwendungsfall: Öffnen Sie eine Ressource in try, verwenden Sie sie und schließen Sie sie anschließend in finally, unabhängig davon, ob das Lesen erfolgreich war.
try {
file.read();
} finally {
file.close();
}Kein return in finally
Ein return innerhalb von finally überschreibt jedes vorherige return oder jede Exception. Verwenden Sie finally ausschließlich zur Bereinigung, nicht zur Ablaufsteuerung.
Ausführungsreihenfolge
Merken Sie sich die Reihenfolge: Zuerst läuft try, dann bei Bedarf catch und zuletzt finally. Die Bereinigung schließt den Block immer ab.
Vollständiges try-catch-finally
Hier werden alle drei Bestandteile kombiniert: geschützte Arbeit, Fehlerbehandlung und eine garantiert am Ende ausgeführte Bereinigung durch finally.
try {
open();
} catch (e) {
print(e);
} finally {
close();
}Kurze Überprüfung
Wann wird ein finally-Block ausgeführt?
Zusammenfassung
Sie verwenden finally jetzt für eine garantierte Bereinigung, die auf jedem Pfad ausgeführt wird: bei Erfolg, bei einem abgefangenen Fehler oder bei einer nicht abgefangenen Exception. Keine Leaks. 🔒
Häufig gestellte Fragen
Ist die Lektion „finally und garantierte Bereinigung“ kostenlos?
Ja — der vollständige Text von „finally und garantierte Bereinigung“ 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 „finally und garantierte Bereinigung“?
Code unabhängig davon ausführen, ob ein Fehler auftritt 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 „finally und garantierte Bereinigung“?
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
- throw, try und catch
- on-Klauseln und Exception-Typen
- finally und garantierte Bereinigung
- Benutzerdefinierte Exceptions und rethrow