Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Finally-blokken | Seksjon
Java Unntakshåndtering

bookFinally-blokken

Sveip for å vise menyen

Note
Definisjon

finally-blokken i Java er en viktig del av unntakshåndtering som sikrer at bestemt kode alltid kjøres, uansett hva som skjer i try- eller catch-blokkene.

finally-blokken brukes vanligvis til oppgaver som ressursopprydding—lukking av filer, frigjøring av nettverkstilkoblinger eller frigjøring av minne—for å sikre at applikasjonen forblir robust og effektiv selv når feil oppstår.

try {
    // code
} catch {
    // code
} finally {
    // code
}

Utførelsen av finally-blokken er spesiell fordi den kjøres hver gang den tilhørende try-setningen fullføres, uavhengig av om et unntak kastes eller ikke. Hvis et unntak oppstår i try-blokken og fanges av en catch-blokk, vil finally-blokken kjøres etter at catch-blokken er ferdig. Hvis det ikke kastes noe unntak, kjøres finally-blokken likevel etter try-blokken. Selv om koden i try- eller catch-blokken inneholder en return-setning, vil finally-blokken kjøres før metoden returnerer kontrollen til den som kaller. Denne oppførselen gjør finally-blokken til et pålitelig sted for handlinger som alltid må utføres, som å lukke filer eller frigjøre andre ressurser.

Main.java

Main.java

copy
12345678910111213141516171819202122
package com.example; public class Main { public static void main(String[] args) { String[] numbers = {"10", "20", "not-a-number", "40"}; int index = 2; int result = 0; try { System.out.println("Attempting to parse value..."); result = Integer.parseInt(numbers[index]); System.out.println("Parsed value: " + result); } catch (NumberFormatException e) { System.out.println("Parsing failed: " + e.getMessage()); } finally { // This block always executes System.out.println("The 'finally' block has executed — cleanup or final steps go here."); } System.out.println("Program continues..."); } }

finally-blokken i Java er en spesiell blokk som alltid kjøres etter en try-blokk, uavhengig av om et unntak ble kastet eller fanget. Den brukes for å sikre at viktige avsluttende handlinger, som å lukke ressurser eller utføre opprydding, alltid blir gjennomført.

I eksempelet ovenfor forsøker programmet å tolke en verdi fra et array. Selv om tolkingen mislykkes og catch-blokken kjøres, vil finally-blokken fortsatt bli utført, noe som garanterer at den avsluttende meldingen skrives ut og nødvendig opprydding skjer. Dette gjør programmet mer pålitelig og forhindrer ressurslekkasjer.

question mark

Hva er garantert for kode plassert inne i en finally-blokk i Java?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 6

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 1. Kapittel 6
some-alt