finally i gwarantowane sprzątanie
Uruchamianie kodu niezależnie od tego, czy wystąpi wyjątek
finally i gwarantowane sprzątanie to bezpłatna lekcja Dart Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Dart Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Dart Academy zawiera 4 lekcji w sumie.
Sprzątanie musi zawsze nastąpić
Otwarte pliki i połączenia należy zamykać nawet wtedy, gdy kod zakończy się błędem. Dart udostępnia finally do sprzątania, które zawsze zostanie wykonane. 🧹
Blok finally
Blok finally wykonuje się po try i catch, niezależnie od sytuacji. Niezależnie od powodzenia lub błędu jego kod zawsze zostanie wykonany.
try {
work();
} finally {
cleanup();
}Wykonuje się po pomyślnym zakończeniu
Jeśli blok try zakończy się bez błędu, Dart nadal natychmiast wykonuje finally, zanim przejdzie dalej.
Wykonuje się po catch
Gdy wyjątek zostanie przechwycony, wykonuje się blok catch, a następnie także finally. Oba wykonują się w tej kolejności.
try {
fail();
} catch (e) {
log(e);
} finally {
close();
}Wykonuje się nawet bez catch
Można użyć try tylko z finally, bez catch. Wyjątek nadal jest propagowany, ale najpierw, podczas wychodzenia z bloku, wykonywane jest sprzątanie.
try {
risky();
} finally {
release();
}Dlaczego nie skopiować kodu?
Bez finally trzeba byłoby powielić kod sprzątania zarówno w ścieżce powodzenia, jak i błędu. Jeden blok finally utrzymuje go w jednym miejscu.
Sprzątanie przed ponownym zgłoszeniem
Nawet gdy nieprzechwycony wyjątek nadal się propaguje, finally wykonuje się jako pierwszy, dzięki czemu zasoby nigdy nie wyciekają.
Bezpieczne zamykanie pliku
Klasyczny przypadek użycia: otwarcie zasobu w try, użycie go, a następnie zamknięcie w finally, niezależnie od tego, czy odczyt się powiódł.
try {
file.read();
} finally {
file.close();
}Unikaj return w finally
return wewnątrz finally nadpisuje każdy wcześniejszy return lub wyjątek. W finally należy umieszczać wyłącznie sprzątanie, a nie sterowanie przepływem.
Kolejność wykonywania
Warto pamiętać o kolejności: najpierw wykonuje się try, następnie w razie potrzeby catch, a na końcu finally. Sprzątanie zawsze zamyka działanie bloku.
Pełne try-catch-finally
To połączenie wszystkich trzech elementów: chronionego kodu, obsługi błędów oraz gwarantowanego sprzątania w finally na końcu.
try {
open();
} catch (e) {
print(e);
} finally {
close();
}Szybkie sprawdzenie
Kiedy wykonuje się blok finally?
Podsumowanie
Potrafi już Pan/Pani używać finally do gwarantowanego sprzątania wykonywanego w każdej sytuacji: po powodzeniu, przechwyconym błędzie lub nieprzechwyconym wyjątku. Koniec z wyciekami. 🔒
Często zadawane pytania
Czy lekcja „finally i gwarantowane sprzątanie” jest bezpłatna?
Tak — pełny tekst „finally i gwarantowane sprzątanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Dart Academy, przejdź na CoddyKit PRO. Kurs Dart Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „finally i gwarantowane sprzątanie”?
Uruchamianie kodu niezależnie od tego, czy wystąpi wyjątek Ćwiczysz Dart Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Dart Academy?
Nie wymagamy żadnego doświadczenia. Dart Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „finally i gwarantowane sprzątanie”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Dart Academy?
Tak. Każda lekcja Dart Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- throw, try i catch
- Klauzule on i typy wyjątków
- finally i gwarantowane sprzątanie
- Własne wyjątki i rethrow