Dart Academy · Lektion

finally och garanterad städning

Kör kod oavsett om ett undantag kastas

Lektion 3 av 413 steg

finally och garanterad städning är en gratis lektion i Dart Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Dart Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Dart Academy innehåller totalt 4 lektioner.

Rensning måste alltid köras

Öppna filer och anslutningar måste stängas även om koden misslyckas. Dart ger Er finally för rensning som alltid utförs. 🧹

finally-blocket

Ett finally-block körs efter try och catch, oavsett vad som händer. Oavsett om körningen lyckas eller misslyckas körs koden alltid.

try {
  work();
} finally {
  cleanup();
}

Körs efter lyckat resultat

Om try-blocket avslutas utan fel kör Dart ändå finally direkt efteråt innan körningen fortsätter.

Körs efter ett catch-block

När ett undantag fångas körs catch-blocket och därefter även finally. Båda körs, i den ordningen.

try {
  fail();
} catch (e) {
  log(e);
} finally {
  close();
}

Körs även utan catch

Använd try med endast finally, utan catch. Undantaget propageras fortfarande, men städningen körs först på vägen ut.

try {
  risky();
} finally {
  release();
}

Varför inte bara duplicera?

Utan finally skulle Ni behöva kopiera städningen till både lyckade och felaktiga kodvägar. Ett finally-block håller den på ett enda ställe.

Städning före återkastning

Även när ett undantag fortsätter att bubbla upp utan att fångas körs finally först, så att resurser aldrig läcker.

Stänga en fil på ett säkert sätt

Ett klassiskt användningsområde är att öppna en resurs i try, använda den och sedan stänga den i finally, oavsett om läsningen lyckades eller inte.

try {
  file.read();
} finally {
  file.close();
}

Undvik return i finally

En return i finally åsidosätter alla tidigare return-satser eller undantag. Använd finally endast för städning, inte för styrning av programflödet.

Körningsordning

Kom ihåg ordningen: try körs, sedan catch vid behov och sist finally. Städningen avslutar alltid blocket.

Fullständig try-catch-finally

Här kombineras alla tre delarna: skyddat arbete, felhantering och garanterad städning i finally i slutet.

try {
  open();
} catch (e) {
  print(e);
} finally {
  close();
}

Snabb kontroll

När körs ett finally-block?

Sammanfattning

Ni använder nu finally för garanterad städning som körs på alla vägar: vid framgång, fångade fel eller okastade undantag. Inga läckor. 🔒

Gratis att börja

Lär dig Dart med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”finally och garanterad städning” gratis?

Ja – hela texten till ”finally och garanterad städning” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Dart Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Dart Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”finally och garanterad städning”?

Kör kod oavsett om ett undantag kastas Ni övar på Dart Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Dart Academy?

Du behöver inga förkunskaper. Utbildningen i Dart Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”finally och garanterad städning”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Dart Academy-lektionen?

Ja. Varje Dart Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. throw, try och catch
  2. on-satser och undantagstyper
  3. finally och garanterad städning
  4. Egna undantag och rethrow
← Tillbaka till Dart Academy