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

bookFinally-Blokken

Stryg for at vise menuen

Note
Definition

finally-blokken i Java er en afgørende del af undtagelseshåndtering, der sikrer, at bestemt kode altid udføres, uanset hvad der sker i try- eller catch-blokkene.

Du bruger typisk finally-blokken til opgaver som ressourcerensning—lukning af filer, frigivelse af netværksforbindelser eller frigørelse af hukommelse—så din applikation forbliver robust og effektiv, selv når fejl opstår.

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

Udførelsen af finally-blokken er speciel, fordi den altid køres, når den tilknyttede try-sætning afsluttes, uanset om der opstår en undtagelse eller ej. Hvis der opstår en undtagelse i try-blokken, og den fanges af en catch-blok, udføres finally-blokken efter, at catch-blokken er færdig. Hvis der ikke opstår nogen undtagelse, udføres finally-blokken stadig efter try-blokken. Selv hvis koden i try- eller catch-blokken indeholder en return-sætning, vil finally-blokken blive udført, før metoden returnerer kontrollen til kaldende kode. Denne adfærd gør finally-blokken til et pålideligt sted for handlinger, der altid skal udføres, såsom at lukke filer eller frigive andre ressourcer.

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 speciel blok, der altid udføres efter en try-blok, uanset om der blev kastet eller fanget en undtagelse. Den bruges til at sikre, at vigtige afsluttende handlinger, såsom at lukke ressourcer eller udføre oprydning, altid bliver udført.

I eksemplet ovenfor forsøger programmet at fortolke en værdi fra et array. Selv hvis fortolkningen mislykkes, og catch-blokken udføres, køres finally-blokken stadig, hvilket garanterer, at den afsluttende meddelelse udskrives, og at nødvendig oprydning sker. Dette gør programmet mere pålideligt og forhindrer ressource-lækager.

question mark

Hvad er garanteret for kode placeret i en finally-blok i Java?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 6

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 1. Kapitel 6
some-alt