Czym jest blok finally w Java i kiedy jest on wykonywany?

Blok finally w języku Java jest to kluczowy element obsługi wyjątków, który służy do zapewnienia, że określony kod zostanie wykonany niezależnie od tego, czy w bloku try wystąpił wyjątek, czy nie. Jest to niezwykle użyteczne w sytuacjach, gdzie musimy mieć pewność, że pewne zasoby będą zwolnione, na przykład strumienie wejścia/wyjścia lub połączenia z bazą danych, niezależnie od wyniku operacji w bloku try.

Przykład użycia bloku finally

Załóżmy, że chcemy odczytać dane z pliku i następnie, niezależnie od wyniku odczytu, zamknąć plik. Oto jak możemy to zrealizować w Javie:

import java.io.*;

public class Main {
    public static void main(String[] args) {
        BufferedReader reader = null;
        try {
            // Otworzenie pliku
            reader = new BufferedReader(new FileReader("plik.txt"));
            // Czytanie pierwszej linii
            String firstLine = reader.readLine();
            System.out.println("Pierwsza linia pliku to: " + firstLine);
        } catch (IOException e) {
            // Obsługa wyjątku IOException
            System.out.println("Wystąpił błąd podczas czytania pliku");
        } finally {
            // Blok finally zawsze zostanie wykonany
            if (reader != null) {
                try {
                    // Zamknięcie pliku
                    reader.close();
                } catch (IOException e) {
                    // Obsługa wyjątku podczas zamykania pliku
                    System.out.println("Nie udało się zamknąć pliku");
                }
            }
        }
    }
}

Podsumowanie

Blok finally jest wykonywany zawsze po blokach try i catch, niezależnie od tego, czy w bloku try wystąpił wyjątek, czy też nie. Jest to idealne miejsce na kod, który musi być wykonany po zakończeniu próby wykonania głównego bloku kodu, np. do zwalniania zasobów. Używanie bloku finally zapewnia, że zasoby są zawsze prawidłowo zwalniane, co jest kluczowe dla zapobiegania wyciekom zasobów i innym problemom związanym z zarządzaniem zasobami w aplikacjach Java.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Java w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top